應用程序需要在目錄中創建文件,在目錄中執行某些操作,然後刪除文件。例如,下面的源代碼:創建然後刪除文件會導致IOException
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
如果「東西」是隻需要的時間非常短的量的過程中,將File.Delete拋出IOException(文件正在被另一個進程)。根據另一個SO帖子:Cannot delete directory with Directory.Delete(path, true),調用Thread.Sleep(0)應該允許先前的過程完成。但是,即使與
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
仍然會拋出相同的IOException。
我得到的解決方案是一個while循環,試圖刪除該文件,直到它被刪除。但我想知道是否有更好的解決方案。
感謝您提供非常快速的答案(並指出它在MSDN上,我現在確實感覺不太好)。要和@usr一起去,因爲他是第一個。但請接受+1作爲我的感謝。 – Jim 2012-08-08 10:58:22