首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中如何检测一个文件被哪个/哪些进程占用呢?

C#/.NET/.NET Core应用程序编程开发中如何检测一个文件被哪个/哪些进程占用呢?

.NET C# 文件 .NET Core 2.15K 次浏览
0

在C#/.NET的应用程序编程开发中,现需要检测一个指定的文件是否被占用,并且检测是哪一个(或者哪些)进行占用了这个文件,应该如何实现呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    使用Handle.exe来读取文件被占用的进程列表,如下:

    Rector的个人主页

    Rector

    2020-04-08 回答

    • 0

      在早期的Windows操作中,是不可能可靠地获取锁定文件的进程列表的,因为Windows根本不跟踪这些信息。为了支持Restart Manager API,现在的Windows操作跟踪了这些信息。所以可以比较可靠地获取锁定(占用)文件的进程列表了,示例代码如下:

      注:以上代码需要访问注册表的权限,所以像IIS这样的应用请尽量不要使用这种方式(存在极大的安全隐患)!!!

      Rector的个人主页

      Rector

      2020-04-08 回答

      我来回答