Как записать данные в текстовый файл на C# без перезаписи текущих данных

приветствую, я не могу понять, как писать данные в файл без перезаписи. Я знаю, что могу использовать файл.appendtext, но я не уверен, как подключить это к моему синтаксису. Вот мой код:

TextWriter tsw = new StreamWriter(@"C:Hello.txt");

//Writing text to the file.
tsw.WriteLine("Hello");


//Close the file.
tsw.Close();

Я хочу, чтобы он писал Привет каждый раз, когда я запускаю программу, а не перезаписывать предыдущий текстовый файл. Спасибо, что прочитал.

8 ответов


передать true как


измените свой конструктор, чтобы передать true в качестве второго аргумента.

TextWriter tsw = new StreamWriter(@"C:\Hello.txt",true);

вы должны открыть как new StreamWriter(filename, true) чтобы он добавлялся в файл вместо перезаписи.


вот кусок кода, который будет записывать значения в файл журнала. Если файл не существует, он создает его, иначе он просто добавляется к существующему файлу. Вам нужно добавить " использование системы.IO; " в верхней части вашего кода, если он еще не существует.

string strLogText = "Some details you want to log.";

// Create a writer and open the file:
StreamWriter log;

if (!File.Exists("logfile.txt"))
{
  log = new StreamWriter("logfile.txt");
}
else
{
  log = File.AppendText("logfile.txt");
}

// Write to the file:
log.WriteLine(DateTime.Now);
log.WriteLine(strLogText);
log.WriteLine();

// Close the stream:
log.Close();

самое главное

File.AppendAllText("c:\file.txt","Your Text");

посмотрите в класс File.

вы можете создать streamwriter с

StreamWriter sw = File.Create(....) 

вы можете открыть существующий файл с

File.Open(...)

вы можете добавить текст легко с

File.AppendAllText(...);

using (StreamWriter writer = File.AppendText(LoggingPath))
{
    writer.WriteLine("Text");
}

прежде всего проверьте, существует ли имя файла, если да, то создайте файл и закройте его одновременно, а затем добавьте текст, используя AppendAllText. Для получения дополнительной информации проверьте код ниже.


string FILE_NAME = "Log" + System.DateTime.Now.Ticks.ToString() + "." + "txt"; 
string str_Path = HostingEnvironment.ApplicationPhysicalPath + ("Log") + "\" +FILE_NAME;


 if (!File.Exists(str_Path))
 {
     File.Create(str_Path).Close();
    File.AppendAllText(str_Path, jsonStream + Environment.NewLine);

 }
 else if (File.Exists(str_Path))
 {

     File.AppendAllText(str_Path, jsonStream + Environment.NewLine);

 }