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

发布于 2024-10-18 16:41:24 字数 524 浏览 9 评论 0原文

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

给定 C:\Documents and Settings\All Users,该方法应显示:

  • C:\ProgramData on windows 7
  • C:\Documents and Settings\All Users在 Windows 2003 上

这是因为在 Windows 7 上 C:\Documents and Settings 是引用 C:\UsersC:\Users\All Users 的连接 是另一个引用 C:\ProgramData 的连接,这是实际的目录。

所以,我的问题是 .NET API 可以让我完成这一切吗?

谢谢。

My need is simple. Given a Windows directory path all I want is the actual path. I am sure the terminology is wrong, so I am giving an example.

Given C:\Documents and Settings\All Users the method should display:

  • C:\ProgramData on windows 7
  • C:\Documents and Settings\All Users on windows 2003

This is because on windows 7 C:\Documents and Settings is a junction referencing C:\Users and C:\Users\All Users is yet another junction referencing C:\ProgramData, which is the actual directory.

So, my question is what .NET API lets me do all this?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

握住我的手 2024-10-25 16:41:24

请查看已经弄清楚的人的此代码示例

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

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

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

没有“本机”.NET API 可以执行此操作,但请记住,框架的大部分内容只是 P/Invoke 调用的包装器,因此您不必担心它们:)

Check out this code sample from someone who has figured it out already.

Essentially, you have to use the Win32 function DeviceIoControl via P/Invoke passing the FSCTL_GET_REPARSE_POINT as the dwIoControlCode parameter.

As the guy on CodeProject says...

I find it interesting that the .NET
Framework's FileAttributes enumeration
includes the value
FileAttributes.ReparsePoint but there
is no other built-in support for
Reparse Points.

There is no "native" .NET API to do this, but bear in mind that much of the framework is just a wrapper around P/Invoke calls anyway, so you shouldn't fear them :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文