Ich muss den Inhalt einer bestimmten Datei bei jedem Start der Anwendungen löschen. Wie mache ich es?
79
Sie können die File.WriteAllText- Methode verwenden.
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
File.WriteAllText
, es scheint, als würde dies manchmal (?) Die Datei löschen, da die Hardlinks nicht aktualisiert werden.IO exceptions of file is in use
, daher empfehle ich Ihnen, sie manuell über den Dateistream zu verarbeitenDies habe ich getan, um den Inhalt der Datei zu löschen, ohne eine neue Datei zu erstellen, da ich nicht wollte, dass die Datei einen neuen Erstellungszeitpunkt anzeigt, selbst wenn die Anwendung gerade ihren Inhalt aktualisiert hat.
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.
quelle
Verwenden
FileMode.Truncate
Sie diese Option jedes Mal, wenn Sie die Datei erstellen. Platzieren Sie auch dasFile.Create
Innere atry
catch
.quelle
Der einfachste Weg, dies zu tun, besteht darin, die Datei über Ihre Anwendung zu löschen und eine neue mit demselben Namen zu erstellen. Noch einfacher ist es, wenn Ihre Anwendung sie mit einer neuen Datei überschreibt.
quelle
Der einfachste Weg ist:
File.WriteAllText(path, string.Empty)
Ich empfehle jedoch die Verwendung,
FileStream
da die erste Lösung werfen kannUnauthorizedAccessException
using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite)) { lock(fs) { fs.SetLength(0); } }
quelle
Versuchen Sie es mit so etwas
File.Create
quelle