c# - 转换 "User Shell Folders"注册表值

标签 c# windows desktop

以下注册表项包含许多系统默认文件夹位置。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell 文件夹

在此处找到的所有用户桌面的路径值如下:

XP or earlier : [%ALLUSERSPROFILE%\Desktop]
Vista or later: [%PUBLIC%\Desktop]

而所有用户桌面的实际路径分别如下:

XP or earlier : "C:\Documents and Settings\All Users\Desktop"
Vista or later: "C:\Users\Public\Desktop"

现在,如果您在 Windows 资源管理器中复制并粘贴上述注册表值,然后按回车键,它会将您带到实际文件夹。例如,如果您在 Vista 的 Windows 资源管理器中粘贴 [%PUBLIC%\Desktop],它会将您带到 ["C:\Users\Public\Desktop"]。

我的问题是这样的;如何使用 C# 程序重现此行为?更具体地说,如果我从一个 C# 程序中检索注册表值 [%PUBLIC%\Desktop],我可以很容易地做到这一点,我如何将它转换为 ["C:\Users\Public\Desktop"]?显然我不是在寻找字符串替换,我需要做 Windows 做的事情。

最佳答案

使用GetFolderPath获取路径名

关于c# - 转换 "User Shell Folders"注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855286/

相关文章:

html - 为新的 html 菜单调整 css 文件

libgdx - 在 libGDX 中动态更改窗口标题

c# - 使用 ANTLR 将 vbscript 翻译成 C#

windows - 获取线程信息/环境 block (TIB/TEB)的官方方式

javascript - NodeJS、Windows、wmic 标准输入

python - 如何在 Windows 中的 python 3 中正确地将焦点传递给消息框或从消息框传递焦点?

java - java桌面应用程序和javafx有什么区别?

c# - 如何在 C# 中旋转后保持图像质量?

C# Directory.Exists ipv6 版本

c# - 我在 C# asp.net 中有哪些选项可以在网站上绘制图表?