web-dev-qa-db-fra.com

Comment écrire des données dans un fichier texte en C # sans écraser les données actuelles

Bonjour, je n'arrive pas à comprendre comment écrire des données dans un fichier sans l'écraser. Je sais que je peux utiliser File.appendtext mais je ne sais pas comment intégrer cela dans ma syntaxe. Voici mon code:

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

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


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

Je veux qu'il écrive Bonjour à chaque fois que je lance le programme, pas écraser le fichier texte précédent. Merci d'avoir lu ceci.

22
llk

Passez trueen tant que paramètre append du constructeur :

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

Changez votre constructeur pour que true soit le deuxième argument.

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

Vous devez l'ouvrir en tant que new StreamWriter(filename, true) pour qu'il soit ajouté au fichier au lieu de l'écraser.

5
Jesus Ramos

Voici un morceau de code qui écrira des valeurs dans un fichier journal. Si le fichier n'existe pas, il le crée, sinon il ne fait qu'ajouter au fichier existant. Vous devez ajouter "using System.IO;" en haut de votre code, si ce n'est déjà fait.

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

La meilleure chose est 

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

Tout d’abord, vérifiez si le nom de fichier existe déjà. Si oui, créez un fichier et fermez-le en même temps, puis ajoutez votre texte avec AppendAllText. Pour plus d'informations, vérifiez le code ci-dessous.


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

Regardez dans la classe File.

Vous pouvez créer un streamwriter avec

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

Vous pouvez ouvrir un fichier existant avec 

File.Open(...)

Vous pouvez facilement ajouter du texte avec

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