.txtファイルを作成して書き込みたいのですが、ファイルが既に存在する場合は、さらに行を追加したいだけです。
string path = @"E:\AppServ\Example.txt";
if (!File.Exists(path))
{
File.Create(path);
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The very first line!");
tw.Close();
}
else if (File.Exists(path))
{
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The next line!");
tw.Close();
}
しかし、最初の行は常に上書きされるようです...同じ行に書き込むことを回避するにはどうすればよいですか(これをループで使用しています)?
簡単なことだとは思いますが、このWriteLine
方法を使ったことはありません。私はC#をまったく使用していません。
File.Open
、WinAPI関数(次のコメントを参照)に内部的にデリゲートすることで、競合状態を回避できることです。ここでのほとんどの解決策はこれを行わず、明らかに競合状態の影響を受けます。
if (file exists) { open file }
はほとんどすべてのプログラミング言語で間違っています!.NETの場合、解決策はFile.Open(path, FileMode.Append, FileAccess.ReadWrite)
適切なフラグを使用することです。