Comment puis-je effacer le contenu d'un fichier?
Question
J'ai besoin d'effacer le contenu d'un fichier particulier à chaque fois que les applications commencent. Comment fait-on ça?
La solution
Vous pouvez utiliser le File.writealltext méthode.
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
Autres conseils
C'est ce que j'ai fait Effacer le contenu du fichier sans créer un nouveau fichier Comme je ne voulais pas que le fichier affiche un nouveau temps de création même lorsque l'application vient 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
.
La façon la plus simple de le faire est peut-être de supprimer le fichier via votre application et de créer un nouveau avec le même nom ... de manière encore plus simple, faites simplement l'écraser votre application avec un nouveau fichier.
Essayez d'utiliser quelque chose comme
Crée ou écrase 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
Parce que la première solution peut lancer UnauthorizedAccessException
using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
lock(fs)
{
fs.SetLength(0);
}
}