c# - 等待系统删除文件

标签 c# multithreading filesystems delete-file

我在删除文件后刷新文件列表时遇到问题。当我发出删除文件的命令时,异常被抛出,因为刷新方法试图访问一个应该被删除的文件。

经过一番思考和调试,我得出的结论是,问题在于系统需要一些时间来删除文件。我这样解决:

//Deleting file
System.Threading.Thread.Sleep(2000);
//Refreshing list

而且效果很好。

我的问题是

有没有更优雅的方法来等待系统删除文件然后继续代码...?

最佳答案

这对我有用:

public static void DeleteFile(String fileToDelete)
{
    var fi = new System.IO.FileInfo(fileToDelete);
    if (fi.Exists)
    {
        fi.Delete();
        fi.Refresh();
        while (fi.Exists)
        {    System.Threading.Thread.Sleep(100);
             fi.Refresh();
        }
    }
}

我发现大部分时候while循环是不会进入的。

关于c# - 等待系统删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370012/

相关文章:

python - scipy.misc.imread 从多线程运行是否安全/高效?

ios - Xcode 在构建时更改应用程序文件夹的位置

c# - global.asax 中的 Application_OnStart 是否适用于缓存页面?

c# - 如何将组合框选择的项目转换为字符串

java - Swing 中的 Wait() 语句

node.js - 文件操作权限-nodejs

windows - 模拟大型文件系统以测试 Windows 中的大型内存映射 (>5tb)

javascript - 在网格的所有复选框中设置复选框值

c# - 自签名证书 : Private key questions

Java 多线程——真实世界的用例