Я хотів би створити .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)
відповідних прапорів.