Jak dodać nową linię do pliku txt

129

Chciałbym dodać nową linię z tekstem do mojego pliku date.txt, ale zamiast dodawać go do istniejącego date.txt, aplikacja tworzy nowy plik date.txt.

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

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

// close the stream
tw.Close();

Chciałbym otworzyć plik txt, dodać tekst, zamknąć, a później po kliknięciu: otwórz date.txt, dodaj tekst i ponownie zamknij.

Więc mogę dostać:

Wciśnięty przycisk: txt otwarty -> dodany aktualny czas, a następnie zamknij go. Wciśnięty kolejny przycisk, otwarty txt -> dodany tekst „OK” lub „NIE OK” w tej samej linii, po czym ponownie go zamknij.

Więc mój plik txt będzie wyglądał tak:

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

W jaki sposób mogę to zrobić? Dzięki!

Elfoc
źródło

Odpowiedzi:

262

Możesz to łatwo zrobić za pomocą

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

Jeśli potrzebujesz nowej linii

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

W każdym razie, jeśli potrzebujesz kodu, zrób to:

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

z drugim parametrem mówiącym o dołączeniu do pliku.
Sprawdź tutaj składnię StreamWriter.

Marco
źródło
12
Jeśli używasz kompilatora C # 4 (lub nowszego), możesz new StreamWriter("date.txt", append:true)trochę wyjaśnić intencję.
kͩeͣmͮpͥ ͩ
21

Brak nowej linii:

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

a następnie, aby uzyskać nową linię po OK:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));
Asken
źródło
13
Proszę używać, Environment.Newlinea nie "\r\n"- nie każdy system zgadza się, jak działają nowe linie: en.wikipedia.org/wiki/Newline#Representations
kͩeͣmͮpͥ ͩ
4

Dlaczego nie zrobić tego za pomocą jednego wywołania metody:

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

który zrobi dla ciebie nową linię i pozwoli ci wstawić wiele linii naraz, jeśli chcesz.

kad81
źródło
Wolę to od zaakceptowanej odpowiedzi; nie musisz określać nowej linii
dwunożny koń
0
var Line = textBox1.Text + "," + textBox2.Text;

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);
Mehdi
źródło