Дополнительно
Создайте файл .txt, если он не существует, и если он действительно добавляет новую строку
Я хотел бы создать файл .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 #.
149
13
Используйте правильный конструктор:
Смотрите также File.AppendAllText (). AppendAllLines добавит новую строку в каждую строку, не помещая ее туда самостоятельно.
Оба метода создадут файл, если он не существует, поэтому вам не нужно.
Вам не нужно проверять наличие файла, так как StreamWriter сделает это за вас. Если вы откроете его в режиме добавления, файл будет создан, если его не существует, тогда вы всегда будете добавлять и никогда не переписывать. Таким образом, ваш первоначальный чек является избыточным.
File.AppendAllText добавляет строку в файл. Он также создает текстовый файл, если файл не существует. Если вам не нужно читать контент, это очень эффективно. Случай использования - регистрация.
Вы просто хотите открыть файл в режиме «приложения».
http://msdn.microsoft.com/en-us/library/3zc0w663.aspx
Когда вы запускаете StreamWriter, он переопределяет текст, который был там раньше. Вы можете использовать свойство append, как это:
Вы можете использовать FileStream. Это делает всю работу за вас.
http://www.csharp-examples.net/filestream-open-file/
Вы можете просто использовать метод File.AppendAllText (), который решит вашу проблему. Этот метод позаботится о создании файла, если он недоступен, открывая и закрывая файл.
Из документации Microsoft вы можете создать файл, если он не существует, и добавить его в один вызов File.AppendAllText Method (Строка, Строка)
.NET Framework (текущая версия) Другие версии
Открывает файл, добавляет указанную строку в файл, а затем закрывает файл. Если файл не существует, этот метод создает файл, записывает указанную строку в файл, а затем закрывает файл. Пространство имен: System.IO Сборка: mscorlib (в mscorlib.dll)
Синтаксис C # C ++ F # VB общедоступная статическая пустота AppendAllText ( путь струны содержание строки ) Параметры путь Тип: System.String Файл для добавления указанной строки. содержание Тип: System.String Строка для добавления в файл.
[AppendAllText][1]
[1]: https://msdn.microsoft.com/en-us/library/microsoft.synchronization.syncdirectionorder(v = sql.105) .aspx?cs-save-lang = 1 & cs-lang = csharp # code-snippet-1
Попробуй это.