web-dev-qa-db-de.com

Wie schreibe ich Daten in eine Textdatei in C #, ohne die aktuellen Daten zu überschreiben?

Grüße, ich kann anscheinend nicht herausfinden, wie ich Daten in eine Datei schreibe, ohne sie zu überschreiben. Ich weiß, dass ich File.appendtext verwenden kann, aber ich bin nicht sicher, wie ich das in meine Syntax einbinden kann. Hier ist mein Code:

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

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


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

Ich möchte, dass bei jedem Programmstart Hallo geschrieben wird, und die vorherige Textdatei nicht überschrieben werden. Danke fürs Lesen.

22
llk

trueals append-Parameter des Konstruktors übergeben :

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

Ändern Sie Ihren Konstruktor so, dass er als zweites Argument wahr ist.

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

Sie müssen als new StreamWriter(filename, true) öffnen, damit sie an die Datei angehängt wird, anstatt sie zu überschreiben.

5
Jesus Ramos

Hier ist ein Teil des Codes, der Werte in eine Protokolldatei schreibt. Wenn die Datei nicht vorhanden ist, wird sie erstellt, andernfalls wird sie einfach an die vorhandene Datei angehängt. Sie müssen "using System.IO;" hinzufügen. am oberen Rand Ihres Codes, wenn es nicht bereits vorhanden ist.

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();
4
Sagar Kute

Das Beste daran ist 

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

Prüfen Sie zunächst, ob der Dateiname bereits existiert. Wenn ja, erstellen Sie eine Datei und schließen Sie sie gleichzeitig. Fügen Sie dann Ihren Text mit AppendAllText an. Weitere Informationen finden Sie in dem folgenden Code.


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);

 }
1
user4064065

Schauen Sie in die File-Klasse.

Sie können einen Streamwriter mit erstellen

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

Sie können eine vorhandene Datei mit öffnen 

File.Open(...)

Sie können Text einfach mit anhängen

File.AppendAllText(...);
1
Tod
using (StreamWriter writer = File.AppendText(LoggingPath))
{
    writer.WriteLine("Text");
}
0
BrandonZeider