Saya ingin membuat file .txt dan menulisnya, dan jika file tersebut sudah ada, saya hanya ingin menambahkan beberapa baris lagi:
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();
}
Tapi baris pertama sepertinya selalu ditimpa ... bagaimana saya bisa menghindari penulisan pada baris yang sama (saya menggunakan ini dalam satu lingkaran)?
Saya tahu ini hal yang sangat sederhana, tetapi saya tidak pernah menggunakan WriteLine
metode ini sebelumnya. Saya benar-benar baru di C #.
File.Open
delegasi internal ke fungsi WinAPI (lihat komentar berikutnya) semoga mencegah kondisi balapan. Sebagian besar solusi di sini tidak melakukan ini dan cukup jelas tunduk pada kondisi lomba.
if (file exists) { open file }
hampir selalu salah di semua bahasa pemrograman! Untuk .NET solusinya adalah menggunakanFile.Open(path, FileMode.Append, FileAccess.ReadWrite)
flag yang sesuai.