c#如何检测文件是否在另一个进程中打开

c# how to detect if file is open in another process

本问题已经有最佳答案,请猛点这里访问。

我已经看到了这些问题,我也没有问同样的问题:是否有方法检查文件是否在使用中?和如何检查文件是否在C中使用?

我在问一个问题,如何检测文件是否在另一个进程中打开。这和其他人问的问题是一样的,但他们得到的答案告诉他们,看看他们是否可以获得对文件的独占锁定,以暗示文件在另一个进程中打开。我不希望在一个文件上获得独占锁,因为我不希望潜在地干扰其他进程的操作。

另外,不同的操作系统的行为也可能不同-一些操作系统可能支持文件系统级或块级快照或卷影副本之类的东西,这可能允许您对文件进行独占锁定,即使其他进程打开文件进行读取。

其他问题中的一个人说您可以测试系统中所有打开的文件句柄。这是唯一的方法吗?如果是这样的话,在C里怎么做呢?我没有看到任何明显的原生.NET类来浏览系统中所有打开的文件句柄。


看看这是否有帮助

它有关于这个问题的详细信息

http://www.codeproject.com/questions/531409/fileplusiplusedplusbyplusanotherplusprocessplus