Verhalten bei temporären Windows-Dateien - Werden sie vom System gelöscht?
Mithilfe der .net framework Sie haben die Möglichkeit, temporäre Dateien erstellen, mit
Path.GetTempFileName();
Die MSDN sagt uns nicht, was passiert, um die temporären Dateien. Ich erinnere mich, irgendwo gelesen zu haben, dass Sie gelöscht werden, indem das OS, wenn es bekommt einen Neustart. Ist das wahr?
Wenn die Dateien nicht gelöscht vom OS, warum sind Sie aufgerufen, vorübergehend? Sie sind normale Dateien in einem normalen Verzeichnis.
InformationsquelleAutor der Frage Bogdan Gavril | 2008-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die kurze Antwort: Sie werden nicht gelöscht.
Die lange Antwort:
Die verwalteten
Weg.GetTempFileName()
Methode ruft die native Win32APIGetTempFileName()
Methode, wie diese:In der Dokumentation für die native Methode besagt:
Ich fand einen großen Artikel genannt "Diese lästigen temp-Dateien" (Archiv Okt. 2007), die beginnt von den Grundlagen und berührt einige der weniger offensichtlichen Probleme der Handhabung von temporären Dateien, wie:
FileOption.DeleteOnClose
und lassen Sie die kernel-deal with it)FileAttributes.Temporäre
)C# - Code aus dem Artikel:
InformationsquelleAutor der Antwort Cristi Diaconescu
Basiert auf der März-Dateien in meinem " %tmp%, würde ich sagen, nicht.
Re, warum Sie temporäre - denn das ist Ihre zu erwartende Nutzung. Sie sind nicht system-Dateien; Sie sind nicht-Anwendung Dateien, und Sie sind nicht der Benutzer Dokumente... Sie existieren nur, um eine app zu tun, die temporäre Verarbeitung (vielleicht auf großen Mengen von Daten), oder oft zum übergeben von Daten via IPC zu einem anderen Prozess. Damit Sie wirklich temporär sind.
Sollten Sie versuchen, löschen Sie alle temporären Dateien, die Sie erstellen, fatal "töten" usw nicht standhalten. Ich benutze oft "mit" - ich erstelle eine wrapper-Klasse, d.h.
InformationsquelleAutor der Antwort Marc Gravell
Es ist ein FileOptions.DeleteOnClose option, die Sie könnten tun, was Sie wollen.
Hier ist ein link zu der MSDN Seite.
InformationsquelleAutor der Antwort paul
Nein, das ist nicht wahr. Im Grunde genommen, ist Ihre Anwendung ist verantwortlich für die Reinigung seiner Durcheinander. Wenn Sie nicht, temporäre Dateien sammeln sich im Laufe der Zeit.
InformationsquelleAutor der Antwort Mihai Limbășan
Nein, es liegt in der Verantwortung der software (sprich: Entwickler), die erstellt eine temporäre Datei zu entsorgen.
Haben einen Blick in Ihre eigenen Ordner "temp", um zu sehen, wie gut das funktioniert 😉
InformationsquelleAutor der Antwort Treb
Sind Sie aufgerufen, temporär, weil in den meisten Fällen kann der Benutzer davon ausgehen, Sie können sicher reinigen Sie das Durcheinander in den temp-dirs... Wenn nicht, im Allgemeinen sind diese Dateien gesperrt sind sowieso.
Im Allgemeinen werden diese Dateien sollten von kurzer Dauer sein: erstellen, verwenden Sie für was auch immer Sie brauchen, haben, löschen Sie Sie auf der Stelle. Im schlimmsten Fall, löschen Sie Sie, wenn Sie die Anwendung beenden.
Irgendwann, Sie kann nicht, wie zB. ein Archiv-manager oder VCS ermöglicht, zu betrachten, eine Datei mit einem editor (oder auch diff-viewer, etc.), aber geschlossen wird, bevor der editor (oder nicht in der Lage zu überwachen, der erzeugte Prozess...).
InformationsquelleAutor der Antwort PhiLho
Ich im internet gelesen habe, eine Menge Zeit, die Menschen nicht wollen, zu verwenden
Path.GetTempFileName
weil Sie sagen, es könnte zurückkehren, eine bereits vorhandene Datei, um das problem zu lösen, können Sie machen Sie einen Dateinamen ein, basierend auf einer GUID.Diese Funktion löst das Problem: Iteriert, bis es findet eine nicht vorhandene Datei mit einer bestimmten Erweiterung.
VB.net
C#:
Hinweis: ich benutze argument extensionWithDot weil System.IO.Pfad.GetExtension liefert mit dot.
InformationsquelleAutor der Antwort Jonh Clark