检查文件夹是否在C#中使用

考虑一个网络文件夹:

\\desiis\c$\Company\B2b\Monitor

在该计算机上,任何尝试删除目录Monitor进程都会收到错误,因为LAN上的用户打开了该目录(可能是Windows资源管理器)。

我是否可以通过C#和.NET框架检测是否有任何用户(以及哪个用户)打开/正在使用某个特定目录?

我不确定您是否可以获取目录中的特定用户,但C#.NET中的DirectoryInfo类可能是最好的方法。

http://msdn.microsoft.com/en-us/library/system.io.directoryinfo_members.aspx

查看此链接上的API,您会注意到有一种方法可以获取有关上次访问该目录的信息,而不是谁。 此外,您可以在尝试删除目录时捕获任何exception,因为它不可用(因为您可能很清楚会抛出exception)。

另请注意,exception捕获成本很高,您应该通过执行此操作来评估过程中的任何减速。

不,我不可能知道。

看来你必须抓住发生的exception作为一种解决方法。