在 Windows Vista 和 7 中,我无法访问 %DEFAULTUSERPROFILE% 系统变量 - 它显示为未找到
如果我尝试从“运行...”对话框访问此系统变量,Windows 会告诉我该目录不存在。某些系统变量(例如 %SYSTEMROOT% 和 %USERPROFILE%)确实有效。因此,如果我尝试在 C# 中使用一个假定不存在的变量,例如 %DEFAULTUSERPROFILE% 或 %PROFILESFOLDER%,我将得不到任何回报。我需要做一些特殊的事情才能访问这些变量吗?
If I try to access this system variable from the Run... dialog, Windows tells me the directory doesn't exist. Some system variables, like %SYSTEMROOT% and %USERPROFILE%, do work. Consequently, if I try to use a supposedly nonexistent variable like %DEFAULTUSERPROFILE% or %PROFILESFOLDER% in C#, I get nothing in return. Is there something special I need to do to get access to these variables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您尝试过
%ALLUSERSPROFILE%
吗?Have you tried
%ALLUSERSPROFILE%
?你确定吗?请注意,此文件夹用于填充添加到系统的每个新用户的初始 AppData 目录。
如果您想要 .NET 中的实际共享应用程序数据目录,则如下:
Are you sure? Be aware that this folder is used to populate the inital AppData directory for each new user added to the system.
If you want the actual shared application data directory in .NET, it's this:
我的建议是直接从注册表中检索该值 - 以防您无法扩展它:
My suggestion is to retreive that value directly from the registry - in case you can't expand it:
您提到 C# - 您不能在 C# 路径字符串中使用环境变量,您需要使用 系统.环境。
我之前没有见过
%DefaultUserProfile%
- 它应该指向安装的第一个用户名吗?You mention C# - you can't use environment variables inside C# path strings, you need to replace them using System.Environment.
I haven't seen
%DefaultUserProfile%
before - should it point to the first username that was installed?使用 CSIDL_PROFILE 和 -1 作为令牌参数调用 SHGetFolderLocation
Call SHGetFolderLocation with CSIDL_PROFILE and -1 as the token parameter