【问题标题】:C# detect folder junctions in a pathC# 检测路径中的文件夹连接
【发布时间】:2011-02-09 10:32:45
【问题描述】:

我想快速检查是否在完整路径中使用了连接点。我已经有一个功能来测试像IsJunction() 这样的文件夹,但也许还有其他解决方案可以不在每个子文件夹上调用IsJunction()

所以我正在寻找像HasJunctionsInPath(string path) 这样的函数,而不测试路径的每个文件夹。

有什么可以做到的吗?

编辑:

或者更好...

是否可以解析路径中的所有连接以获取文件或文件夹的真实位置?这将更好地解决我的问题,我仍然可以将结果与实现bool HasJunctionsInPath(string path) 函数的原始路径进行比较。

【问题讨论】:

    标签: c# junction


    【解决方案1】:

    看看 Jeff Brown 的解决方案。

    他在静态类中实现了您的功能,这似乎工作正常。

    http://www.codeproject.com/KB/files/JunctionPointsNet.aspx

    【讨论】:

      【解决方案2】:

      据我所知,c# 中没有现成的实现来直接处理连接点/重解析点。

      因此您必须与 kernel32.dll 进行一些互操作。这有点棘手,但您可以找到样本。 您将需要 CreateFile() 和 DeviceIoControl() 调用。

      这是一个很好的示例: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print

      有用的 msdn 链接:

      http://msdn.microsoft.com/en-us/library/cc232007%28PROT.13%29.aspx

      http://msdn.microsoft.com/en-us/library/aa363858%28v=vs.85%29.aspx

      http://msdn.microsoft.com/en-us/library/aa363216%28v=vs.85%29.aspx

      http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/7acd564f-0e9f-4295-8609-916af6675f0a

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多