我想快速检查是否在完整路径中使用了连接点。我已经有一个函数来测试像IsJunction()
这样的文件夹,但也许还有一个其他解决方案不能在每个子文件夹上调用IsJunction()
。
所以我正在寻找像HasJunctionsInPath(string path)
这样的函数而不测试路径的每个文件夹。
有什么可以做到的吗?
编辑:
或更好......
是否可以解析路径中的所有联结以获取文件或文件夹的真实位置?这样可以更好地解决我的问题,我仍然可以将结果与实现bool HasJunctionsInPath(string path)
函数的原始路径进行比较。
答案 0 :(得分:4)
答案 1 :(得分: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