web-dev-qa-db-fra.com

Comment puis-je effacer le contenu d'un fichier?

Je dois effacer le contenu d'un fichier particulier à chaque démarrage des applications. Comment fait-on ça?

71
olive

Vous pouvez utiliser la méthode File.WriteAllText .

System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
115
The Scrum Meister

C’est ce que j’ai fait pour effacer le contenu du fichier sans créer de nouveau fichier car je ne voulais pas que le fichier affiche une nouvelle heure de création même lorsque l’application venait de mettre à jour son contenu.

FileStream fileStream = File.Open(<path>, FileMode.Open);

/* 
 * Set the length of filestream to 0 and flush it to the physical file.
 *
 * Flushing the stream is important because this ensures that
 * the changes to the stream trickle down to the physical file.
 * 
 */
fileStream.SetLength(0);
fileStream.Close(); // This flushes the content, too.
74
Abhay Jain

Utilisation FileMode.Truncate à chaque fois que vous créez le fichier. Placez également le File.Create à l'intérieur d'un trycatch.

10
sajoshi

Le moyen le plus simple de procéder consiste peut-être à supprimer le fichier via votre application et à en créer un nouveau portant le même nom ... de manière encore plus simple, il suffit de remplacer votre application par un nouveau fichier.

2
Kartikya

Essayez d'utiliser quelque chose comme

File.Create

Crée ou remplace un fichier dans le chemin spécifié.

1
Adriaan Stander

Le moyen le plus simple est:

File.WriteAllText(path, string.Empty)

Cependant, je vous recommande d’utiliser FileStream car la première solution peut jeter UnauthorizedAccessException

using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
     lock(fs)
     {
          fs.SetLength(0);
     }
}
0
Mohammad Albay