Comment ajouter une nouvelle ligne dans un fichier txt

129

Je voudrais ajouter une nouvelle ligne avec du texte à mon fichier date.txt, mais au lieu de l'ajouter dans le fichier date.txt existant, l'application crée un nouveau fichier 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();

Je voudrais ouvrir le fichier txt, ajouter du texte, le fermer, et plus tard après avoir cliqué sur quelque chose: ouvrir date.txt, ajouter du texte et le refermer.

Donc je peux obtenir:

Bouton enfoncé: txt ouvert -> heure actuelle ajoutée, puis fermez-le. Un autre bouton enfoncé, txt ouvert -> texte ajouté "OK" ou "PAS OK" dans la même ligne, puis fermez-le à nouveau.

Donc, mon fichier txt ressemblera à ça:

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

Comment puis-je faire ceci? Merci!

Elfoc
la source

Réponses:

262

Vous pouvez le faire facilement en utilisant

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

Si vous avez besoin d'une nouvelle ligne

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

Quoi qu'il en soit, si vous avez besoin de votre code, procédez comme suit:

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

avec le deuxième paramètre indiquant d'ajouter au fichier.
Vérifiez ici la syntaxe StreamWriter.

Marco
la source
12
Si vous utilisez un compilateur c # 4 (ou plus récent), vous pouvez le mettre new StreamWriter("date.txt", append:true)pour rendre l'intention un peu plus claire.
kͩeͣmͮpͥ ͩ
21

Pas de nouvelle ligne:

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

puis pour obtenir une nouvelle ligne après OK:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));
Demander
la source
13
Veuillez utiliser Environment.Newlineet non "\r\n"- tous les systèmes ne sont pas d'accord sur le fonctionnement des nouvelles lignes: en.wikipedia.org/wiki/Newline#Representations
kͩeͣmͮpͥ ͩ
4

Pourquoi ne pas le faire avec un seul appel de méthode:

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

qui fera la nouvelle ligne pour vous, et vous permettra d'insérer plusieurs lignes à la fois si vous le souhaitez.

kad81
la source
Je préfère cela à la réponse acceptée; vous n'avez pas besoin de spécifier de nouvelle ligne
twoleggedhorse
0
var Line = textBox1.Text + "," + textBox2.Text;

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