【问题标题】:Determine who has a file open using C# - is there a way now?确定谁使用 C# 打开了文件 - 现在有办法吗?
【发布时间】:2017-03-28 14:38:25
【问题描述】:

我需要能够检查谁使用 C# 打开了文件。我发现以前有几个人问过这个问题,但他们都是很久以前的,最近一次是在 2012 年。我想知道在过去的 5 年里,微软是否将这种能力添加到 .net,或者也许有人提出了一个有能力的nuget包。

这是我found的最新答案

【问题讨论】:

    标签: c# windows system.io.file


    【解决方案1】:

    您可以使用带有未记录参数 SystemHandleInformation 的 Windows 内部函数 NTQuerySystemInformation。我不知道 c# 的实现,但我知道它的 delphy 代码和 vb6 代码。检查此链接,它将帮助您进行 c# 实现。

    Delphi - get what files are opened by an application

    https://forum.sysinternals.com/topic14546.html

    【讨论】:

    【解决方案2】:

    据我所知,标准库还没有适合这个的函数。关于这个有一个流行的问题:https://stackoverflow.com/a/937558/5665527。

    此外,如果您想知道谁远程打开了文件 - net file 函数可能很有用(可通过 cmd 访问)。我相信MSDN上有类似的WinAPI函数可以用类似的方式实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多