以下注册表项包含许多系统默认文件夹位置。
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/