Eine Anwendung muss eine Datei in einem Verzeichnis erstellen, tun Sie etwas in dem Verzeichnis, und löschen Sie dann die Datei. Zum Beispiel unter der Quellcode:Erstellen dann Löschen von Datei verursacht IOException
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
Wenn „etwas“ ist ein Prozess, der eine sehr kurze Zeit nur braucht, wird File.Delete werfen IOException (Datei von einem anderen Prozess verwendet wird). Laut einem anderen SO Post: Cannot delete directory with Directory.Delete(path, true) sollte der Aufruf von Thread.Sleep (0) den vorherigen Prozess beenden. Aber auch bei
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
die gleiche IOException noch geworfen werden.
Die Lösung, die ich bekam, 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.
Danke für die sehr schnellen Antworten (und darauf hingewiesen, dass es auf MSDN ist. Ich fühle mich im Moment sicherlich nicht sehr hell). Ich werde mit @usr gehen, weil er der Erste ist. Aber bitte akzeptiere die +1 als Dankeschön. – Jim