应用程序需要在目录中创建文件,在目录中执行某些操作,然后删除该文件.例如,下面的源代码:
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
Run Code Online (Sandbox Code Playgroud)
如果"某事"是一个只需要很短时间的进程,File.Delete将抛出IOException(另一个进程正在使用该文件).根据另一个SO帖子:无法删除Directory.Delete(path,true)的目录,调用Thread.Sleep(0)应该允许前一个进程完成.然而,即使有
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
Run Code Online (Sandbox Code Playgroud)
仍然会抛出相同的IOException.
我得到的解决方案是一个while循环,尝试重复删除文件,直到它被删除.但我想知道这是否是一个更好的解决方案.
RB.*_*RB. 21
该File.Create方法将创建一个文件流,你需要正确处置.我建议使用以下代码:
using(FileStream fs = File.Create("textfile.txt"))
{
// Do something here.
}
File.Delete("textfile.txt");
Run Code Online (Sandbox Code Playgroud)
请注意,此代码完全按照MSDN文档中的建议...
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |