【发布时间】:2020-11-03 20:50:19
【问题描述】:
我在删除文件后刷新文件列表时遇到问题。当我发出删除文件的命令时,由于刷新方法试图访问应该删除的文件,因此引发了异常。
经过一番思考和调试,我得出结论,问题在于系统需要一些时间来删除文件。我这样解决它:
//Deleting file
System.Threading.Thread.Sleep(2000);
//Refreshing list
效果很好。
我的问题是
有没有更优雅的方式来等待系统删除文件然后继续执行代码...?
【问题讨论】:
-
我们能看到剩下的代码吗?另外,什么样的文件系统(本地 NTFS 或某种形式的 NFS)?无论如何,在 NTFS 上的大多数文件系统删除操作都是原子的。
-
它在 NTFS 上。您对代码的哪一部分感兴趣。Delete 方法递归地删除目录中的所有文件和目录本身。我不认为这有关系,所以我说我需要删除一个文件......这是一回事,不是吗?
-
一点也不。我会留下答案
-
@kr85 请看我的帖子,我刚刚更新了 FileSystemWatcher 的 MSDN 链接指向 .NET 4.0 而不是 1.1
标签: c# multithreading filesystems delete-file