2

我们目前遇到的问题是,有太多用户试图通过使用文件锁的旧程序访问单个文件。

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

当我打开 compmgmt.msc 时,我可以看到文件、文件锁和锁定它的用户,所以我知道这些信息是可以访问的。但是我似乎找不到可以获取此信息的 dotnet 类(#locks,已锁定它的用户)。

有人知道可以在这里帮助我的课程吗?

4

2 回答 2

2

底层的 winapi 函数是 NetFileEnum()。你必须pinvoke 它

于 2012-11-09T03:37:29.530 回答
0

您可能可以通过 WMI(Windows 管理规范)访问这些信息:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa394582%28v=vs.85%29.aspx

这可能是一个很好的起点: http ://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/19b88200-3dfd-4042-b16a-1f514dd5e1f9

此外,在使用 WMI Explorer 开始编码之前,请尝试获取您正在寻找的信息: http ://www.ks-soft.net/hostmon.eng/wmi/index.htm

这也有帮助: select * from cim_datafile where name='d:\file.txt'

请注意使用双斜杠“\”

于 2012-11-09T00:30:28.867 回答