Question

J'ai besoin d'effacer le contenu d'un fichier particulier à chaque fois que les applications commencent. Comment fait-on ça?

Était-ce utile?

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

File.create

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);
     }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top