有没有一种方法可以立即检查目录是否正在使用中

本文关键字:是否 检查 一种 方法 有没有 | 更新日期: 2023-09-27 18:21:18

我想用directory.move.移动一个目录及其所有子目录

但是,在执行此操作之前,我想检查目录及其子目录中的任何文件和子文件是否被其他进程使用。

然后,在移动之前,我想将目录锁定到其他进程,这样我就可以确保directory.move不会抛出任何异常。

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

我希望避免逐个文件检查单个文件的使用情况,因为当软件检查文件时,该文件没有被使用,这并不意味着在移动过程开始时不会被使用。

有没有一种方法可以立即检查目录是否正在使用中

没有办法锁定文件夹(+子文件夹),因此您总是会遇到竞争条件,也不能保证不会出现异常。

在检查和移动之间总是有可能发生一些变化,所以事情可能会出错。

只需尝试移动文件夹,如果不成功,请稍后重试。

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

描述

你可以尝试一下你的File opteration。。挡块并捕获CCD_ 1。

样品

try 
{
   // try to move
} 
catch (System.IO.IOException ex) 
{
   // file used by another process or other IO Exception
}

更多信息

  • MSDN-IOException类