Aplikacja musi utworzyć plik w katalogu, zrób coś w katalogu, a następnie usuń plik. Na przykład, kod źródłowy poniżej:Tworzenie, usuwanie pliku Przyczyny IOException
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
Jeśli „coś” jest procesem, który wymaga jedynie bardzo krótki okres czasu, File.Delete rzuci IOException (plik jest używany przez inny proces). Według innego wpisu SO: Cannot delete directory with Directory.Delete(path, true), wywołanie Thread.Sleep (0) powinno pozwolić na zakończenie poprzedniego procesu. Jednak nawet z
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
samo IOException wciąż być wyrzucone.
Rozwiązaniem, które otrzymałem, jest pętla while, która próbuje usunąć plik wielokrotnie, dopóki go nie usunie. Ale zastanawiam się, czy jest lepsze rozwiązanie.
Dziękuję za bardzo szybkie odpowiedzi (i wskazanie na MSDN.) Z pewnością nie czuję się teraz zbyt dobrze). Pójdę z @usr, ponieważ on jest pierwszy. Ale proszę przyjąć +1 jako moje podziękowanie. – Jim