有没有办法立即检查目录是否正在使用?

Ars*_*ray 10 c# windows filesystems file

我想用Directory.Move移动目录及其所有子目录.

但是,在我这样做之前,我想检查目录及其子目录中的任何文件和子文件是否正被其他进程使用.

然后,在移动之前,我想将目录锁定到其他进程,因此我可以确定Directory.Move不会抛出任何异常.

实现这一目标的最佳方法是什么?

我想避免逐个文件检查单个文件的使用情况,因为软件检查时不使用该文件的事实并不意味着在移动过程开始时不会使用该文件.

Ern*_*rno 9

无法锁定文件夹(+子文件夹),因此您总是会遇到竞争条件,并且无法保证不会出现异常.

检查和移动之间总会有变化的可能性,所以事情可能会出错.

只是尝试移动文件夹,如果没有成功则稍后重试.

另请参阅:Delphi:检查文件是否正在使用(这是一个类似的问题,只需忽略Delphi部分)