ファイルを読み取り専用で開くことができるようにコードを変更しました。 FileStream
とStreamReader
は文字列に変換されないため、File.WriteAllText
の使用に問題があります。
これは私のコードです:
static void Main(string[] args)
{
string inputPath = @"C:\Documents and Settings\All Users\Application Data\"
+ @"Microsoft\Windows NT\MSFax\ActivityLog\OutboxLOG.txt";
string outputPath = @"C:\FAXLOG\OutboxLOG.txt";
var fs = new FileStream(inputPath, FileMode.Open, FileAccess.Read,
FileShare.ReadWrite | FileShare.Delete);
string content = new StreamReader(fs, Encoding.Unicode);
// string content = File.ReadAllText(inputPath, Encoding.Unicode);
File.WriteAllText(outputPath, content, Encoding.UTF8);
}
streamReaderのReadToEnd()メソッドを使用します。
string content = new StreamReader(fs, Encoding.Unicode).ReadToEnd();
もちろん、アクセス後にStreamReaderを閉じることは重要です。したがって、 keyboardP などで示唆されているように、using
ステートメントは理にかなっています。
string content;
using(StreamReader reader = new StreamReader(fs, Encoding.Unicode))
{
content = reader.ReadToEnd();
}
string content = String.Empty;
using(var sr = new StreamReader(fs, Encoding.Unicode))
{
content = sr.ReadToEnd();
}
File.WriteAllText(outputPath, content, Encoding.UTF8);
StreamReader.ReadToEnd()
メソッドを使用します。