【发布时间】:2017-03-28 14:38:25
【问题描述】:
我需要能够检查谁使用 C# 打开了文件。我发现以前有几个人问过这个问题,但他们都是很久以前的,最近一次是在 2012 年。我想知道在过去的 5 年里,微软是否将这种能力添加到 .net,或者也许有人提出了一个有能力的nuget包。
这是我found的最新答案
【问题讨论】:
标签: c# windows system.io.file
我需要能够检查谁使用 C# 打开了文件。我发现以前有几个人问过这个问题,但他们都是很久以前的,最近一次是在 2012 年。我想知道在过去的 5 年里,微软是否将这种能力添加到 .net,或者也许有人提出了一个有能力的nuget包。
这是我found的最新答案
【问题讨论】:
标签: c# windows system.io.file
您可以使用带有未记录参数 SystemHandleInformation 的 Windows 内部函数 NTQuerySystemInformation。我不知道 c# 的实现,但我知道它的 delphy 代码和 vb6 代码。检查此链接,它将帮助您进行 c# 实现。
【讨论】:
据我所知,标准库还没有适合这个的函数。关于这个有一个流行的问题:https://stackoverflow.com/a/937558/5665527。
此外,如果您想知道谁远程打开了文件 - net file 函数可能很有用(可通过 cmd 访问)。我相信MSDN上有类似的WinAPI函数可以用类似的方式实现。
【讨论】: