.net 以编程方式监视文件上的windows锁,如compmgmt.msc所示

.net 以编程方式监视文件上的windows锁,如compmgmt.msc所示,.net,windows,locks,.net,Windows,Locks,我们目前有一个问题,太多的用户试图通过使用文件锁的遗留程序访问单个文件 我正在试图弄清楚是否可以编写一个在服务器上运行的dotnet程序,并监视这个特定的文件平面文件数据库。每当客户端试图访问此文件,而该文件被另一个用户锁定时,我想向他们发送一条消息,告诉他们谁正在访问该文件,这样他们就可以惹恼那个人而不是我 当我打开compmgmt.msc时,我可以看到文件、文件锁和锁定它的用户,因此我知道这些信息是可以访问的。然而,我似乎找不到一个dotnet类可以获得这个信息锁,用户已经锁定了它 有人知道

我们目前有一个问题,太多的用户试图通过使用文件锁的遗留程序访问单个文件

我正在试图弄清楚是否可以编写一个在服务器上运行的dotnet程序,并监视这个特定的文件平面文件数据库。每当客户端试图访问此文件,而该文件被另一个用户锁定时,我想向他们发送一条消息,告诉他们谁正在访问该文件,这样他们就可以惹恼那个人而不是我

当我打开compmgmt.msc时,我可以看到文件、文件锁和锁定它的用户,因此我知道这些信息是可以访问的。然而,我似乎找不到一个dotnet类可以获得这个信息锁,用户已经锁定了它


有人知道有什么类可以帮助我吗?

您可能可以通过WMI Windows Management Instrumentation访问这些信息:

这可能是一个很好的起点:

此外,在开始使用WMI资源管理器编码之前,请尝试获取您要查找的信息:

这也有助于: 从cim_数据文件中选择*,其中name='d:\file.txt'


请注意,使用双斜杠\

的基础winapi函数是NetFileEnum。您必须这样做。

谢谢,但该示例显示了访问文件的进程的WMI信息,而不是用户。好的,谢谢WMI CIM_数据文件对象中有很多信息,但是没有任何字段处理用户或文件锁。