检查文件是否正在使用而不尝试catch?

Clo*_*ble 12 .net c# exception file file-access

有没有办法可以检查文件是否正在使用或者是否被其他进程打开而不仅仅是尝试打开它并捕获异常?有没有服务方法来测试这样的事情?

Cod*_*ray 15

即使有,它也不会对你有好处,因为你仍然必须捕获异常才能处理在初始检查和你打开/访问它的实际尝试之间文件变得不可用的竞争条件.

对于初步的防守检查,我想不出任何令人信服的优势.它只会导致不必要的代码重复.

如果出现这样的IsFileAccessible功能,它可能会被实施为试图打开该文件一个巨大的try/catch块,捕获失败,并返回结果.