gpt4 book ai didi

c# - 打开前检查文件是否已被使用(网盘,C#)

转载 作者:行者123 更新时间:2023-11-30 19:52:10 25 4
gpt4 key购买 nike

.Net 中是否有任何方法可以在打开文件(在本地网络驱动器上)之前检查是否已在使用中?

最佳答案

您应该尝试访问它,如果失败,您要么没有所需的权限(您可以使用 GetAccessControl 检查),要么它被另一个进程锁定。

但我认为没有任何可靠的措施来区分锁定和权限失败(因为您可能能够读取文件,但无法检查权限)。甚至 Windows 的错误消息也说您没有权限或者它正在被另一个进程使用。

您可以使用 WMI CIM_DataFile 类查询指定数据文件的 InUseCount

如果您正在寻找与 Linux 中的 lsof 实用程序等效的程序,以找出给定 local 进程的所有打开文件,您可以尝试使用 Win32_Process WMI 类通过 System.Management 命名空间。您可以发出 WMI 查询来查找所有本地进程正在使用的所有打开文件中的文件名,看看它是否存在。或者,您可以 P/Invoke 并直接使用 NtQuerySystemInformation API 来完成相同的任务。

关于c# - 打开前检查文件是否已被使用(网盘,C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/374155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com