Eine Anwendung muss eine Datei in einem Verzeichnis erstellen, etwas im Verzeichnis ausführen und anschließend die Datei löschen. Zum Beispiel den Quellcode unter:
%Vor%Wenn "etwas" ein Prozess ist, der nur eine sehr kurze Zeitspanne benötigt, löst File.Delete IOException aus (die Datei wird von einem anderen Prozess verwendet). Laut einem anderen SO Post: Kann Verzeichnis nicht mit Directory.Delete (Pfad, true) löschen sollte der Aufruf von Thread.Sleep (0) den vorherigen Prozess beenden. Aber auch mit
%Vor%es wird immer noch dieselbe IOException ausgelöst.
Die Lösung, die ich bekommen habe, ist eine while-Schleife, die versucht, die Datei wiederholt zu löschen, bis sie gelöscht wird. Aber ich frage mich, ob es eine bessere Lösung gibt.
Die Methode File.Create erstellt einen Dateistream, den Sie benötigen richtig entsorgen. Ich schlage folgenden Code vor:
%Vor%Beachten Sie, dass dieser Code genau wie in der MSDN-Dokumentation vorgeschlagen ist ...
Beachten Sie auch: Wenn Sie nichts in die Datei schreiben wollen, können Sie die "Verwendung" auf zwei Arten vermeiden:
%Vor%Im Fall (2) ist es sicher, die Verwendung zu vermeiden, da Sie nichts tun, was eine Ausnahme zwischen der Erstellung und der Entsorgung auslösen könnte.