Come aggiungere una nuova riga nel file txt


129

Vorrei aggiungere una nuova riga con testo al mio file date.txt, ma invece di aggiungerlo al file date.txt esistente, l'app sta creando un nuovo file 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();

Vorrei aprire il file txt, aggiungere del testo, chiuderlo e successivamente dopo aver fatto clic su qualcosa: apri date.txt, aggiungi testo e richiudilo.

Quindi posso ottenere:

Pulsante premuto: txt aperto -> aggiunta ora corrente, quindi chiusura. È stato premuto un altro pulsante, txt aperto -> ha aggiunto il testo "OK" o "NON OK" nella stessa riga, quindi chiuderlo di nuovo.

Quindi il mio file txt sarà simile al seguente:

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

Come posso fare questo? Grazie!

Risposte:


262

Puoi farlo facilmente usando

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

Se hai bisogno di newline

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

Ad ogni modo se hai bisogno del tuo codice fai questo:

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

con il secondo parametro che dice di aggiungere al file.
Controlla qui la sintassi di StreamWriter.


12
Se stai usando il compilatore c # 4 (o più recente), puoi new StreamWriter("date.txt", append:true)rendere l'intenzione un po 'più chiara.
kͩeͣmͮpͥ ͩ

21

Nessuna nuova linea:

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

e quindi per ottenere una nuova riga dopo OK:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));

13
Si prega di utilizzare Environment.Newlinee non "\r\n"- non tutti i sistemi concordano su come funzionano le
newline

4

Perché non farlo con una chiamata di metodo:

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

che farà la nuova riga per te e ti permetterà di inserire più righe contemporaneamente se vuoi.


Preferisco questo alla risposta accettata; non è necessario specificare una nuova riga
twoleggedhorse

0
var Line = textBox1.Text + "," + textBox2.Text;

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.