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

时间:2013-07-04 17:49:38

标签: c# file detect

我看过这些问题,我不是问同样的问题:
Is there a way to check if a file is in use?

How to check if file is in use in c#?

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

此外,不同的操作系统可能表现不同 - 某些操作系统可能支持文件系统级或块级快照或卷影副本等操作,这可能允许您获取文件的独占锁定,即使 其他一些进程打开文件进行阅读。

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

1 个答案:

答案 0 :(得分:2)

看看这是否有帮助

它有关于此问题的详细信息

http://www.codeproject.com/Questions/531409/fileplusisplususedplusbyplusanotherplusprocessplus