Je dois effacer le contenu d'un fichier particulier à chaque démarrage des applications. Comment fait-on ça?
Vous pouvez utiliser la méthode File.WriteAllText .
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
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.
Utilisation FileMode.Truncate
à chaque fois que vous créez le fichier. Placez également le File.Create
à l'intérieur d'un try
catch
.
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.
Essayez d'utiliser quelque chose comme
Crée ou remplace un fichier dans le chemin spécifié.
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);
}
}