So fügen Sie der txt-Datei eine neue Zeile hinzu

129

Ich möchte meiner date.txt-Datei eine neue Zeile mit Text hinzufügen, aber anstatt sie in die vorhandene date.txt-Datei einzufügen, erstellt die App eine neue date.txt-Datei.

TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();

Ich möchte eine txt-Datei öffnen, Text hinzufügen, schließen und später, nachdem ich auf etwas geklickt habe: date.txt öffnen, Text hinzufügen und wieder schließen.

So kann ich bekommen:

Taste gedrückt: txt geöffnet -> aktuelle Zeit hinzugefügt, dann schließen. Eine weitere Taste gedrückt, txt geöffnet -> Text "OK" oder "NICHT OK" in derselben Zeile hinzugefügt und dann wieder geschlossen.

Meine txt-Datei sieht also so aus:

2011-11-24 10:00:00 OK
2011-11-25 11:00:00 NOT OK

Wie kann ich das machen? Vielen Dank!

Elfoc
quelle

Antworten:

262

Sie könnten es leicht mit tun

File.AppendAllText("date.txt", DateTime.Now.ToString());

Wenn Sie eine neue Zeile benötigen

File.AppendAllText("date.txt", 
                   DateTime.Now.ToString() + Environment.NewLine);

Wenn Sie Ihren Code benötigen, gehen Sie wie folgt vor:

TextWriter tw = new StreamWriter("date.txt", true);

mit dem zweiten Parameter, der angibt, an die Datei anzuhängen.
Überprüfen Sie hier die StreamWriter-Syntax.

Marco
quelle
12
Wenn Sie den Compiler c # 4 (oder neuer) verwenden, können Sie new StreamWriter("date.txt", append:true)die Absicht etwas klarer machen.
kͩeͣmͮpͥ 24
21

Keine neue Zeile:

File.AppendAllText("file.txt", DateTime.Now.ToString());

und dann, um eine neue Zeile nach OK zu erhalten:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));
Fragen Sie
quelle
13
Bitte verwenden Environment.Newlineund nicht "\r\n"- nicht jedes System stimmt der Funktionsweise von Zeilenumbrüchen zu: en.wikipedia.org/wiki/Newline#Representations
kͩeͣmͮpͥ 24
4

Warum nicht mit einem Methodenaufruf:

File.AppendAllLines("file.txt", new[] { DateTime.Now.ToString() });

Dadurch wird die neue Zeile für Sie erstellt und Sie können mehrere Zeilen gleichzeitig einfügen, wenn Sie möchten.

kad81
quelle
Ich ziehe dies der akzeptierten Antwort vor; Sie müssen keine neue Zeile angeben
twoleggedhorse
0
var Line = textBox1.Text + "," + textBox2.Text;

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);
Mehdi
quelle