如何使用.NET获取Windows上的实际目录路径?

时间:2011-02-23 16:11:13

标签: .net windows junction reparsepoint

我的需要很简单。给定一个Windows目录路径我想要的只是实际路径。我确信术语是错误的,所以我举一个例子。

鉴于 C:\ Documents and Settings \ All Users ,该方法应显示:

    Windows 7上的
  • C:\ ProgramData
  • Windows上的
  • C:\ Documents and Settings \ All Users

这是因为在Windows 7 C:\ Documents and Settings 是一个引用 C:\ Users C:\ Users \ All Users 的联结strong>是另一个引用 C:\ ProgramData 的联结,这是实际的目录。

所以,我的问题是.NET API能让我做到这一切吗?

感谢。

1 个答案:

答案 0 :(得分:1)

从已经弄明白的人那里查看this code sample

基本上,您必须通过P / Invoke使用Win32函数DeviceIoControl,将FSCTL_GET_REPARSE_POINT作为dwIoControlCode参数传递。

正如CodeProject上的人所说......

  

我发现.NET很有趣   Framework的FileAttributes枚举   包括价值   FileAttributes.ReparsePoint但在那里   没有其他内置的支持   重新分析点。

没有“本机”.NET API可以做到这一点,但请记住,大部分框架只是P / Invoke调用的包装器,所以你不应该害怕它们:)