【问题标题】:Check if folder is in use in C#检查文件夹是否在 C# 中使用
【发布时间】:2009-12-16 15:18:57
【问题描述】:

考虑一个网络文件夹:

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

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

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

【问题讨论】:

    标签: c# .net file-io


    【解决方案1】:

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

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

    查看此链接中的 API,您会注意到有一种方法可以获取有关目录最后一次访问时间的信息,但不是由谁访问。您还可以在尝试删除目录时捕获任何异常,因为它不可用(您可能很清楚会引发异常)。

    还请注意,异常捕获的成本很高,您应该通过这样做来评估流程中的任何减速。

    【讨论】:

    • 我需要关于它的 API kernel32.dll(任何方法,哪个??)(因为知道使用该目录的用户)??谢谢!!!
    【解决方案2】:

    不,我知道不可能。

    看来您必须捕获正在发生的异常作为解决方法。

    【讨论】:

    • 可惜了:'(或许,任何一位微软大师都会有解决方案的……我祈祷……
    猜你喜欢
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    相关资源
    最近更新 更多