如何获取当前用户目录?
使用这个:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
我得到这个输出:
"C:\\Documents and Settings\\[USER]\\Application Data"
How can I get the root directory of all users? IE:
"C:\\Documents and Settings\\[USER]\\"
Using this:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
I get this output:
"C:\\Documents and Settings\\[USER]\\Application Data"
How can I get the root directory of all users? i.e.:
"C:\\Documents and Settings\\[USER]\\"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
尝试:
编辑:
如果您使用的 .NET 版本为 4 或更高版本,则可以使用
Environment.SpecialFolder
枚举:Try:
Edit:
If the version of .NET you are using is 4 or above, you can use the
Environment.SpecialFolder
enumeration:也许这将是一个很好的解决方案:考虑到这是 Vista/Win7 还是 XP 并且不使用环境变量:
尽管使用环境变量更清晰。
May be this will be a good solution: taking in account whether this is Vista/Win7 or XP and without using environment variables:
Though using the environment variable is much more clear.
您可以通过以下方式获取 UserProfile 路径:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
You can get the UserProfile path with just this:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
在调查 Environment.SpecialFolder 枚举时也非常有帮助。 使用 LINQPad 或创建解决方案并执行以下代码:
这是我机器上的结果:
(“fisch”是我姓氏的前 5 个字母。这是使用 Microsoft 帐户登录时分配的用户名。)
Also very helpful, while investigating the
Environment.SpecialFolder
enum. Use LINQPad or create a solution and execute this code:This is the result on my machine:
("fisch" is the first 5 letters of my last name. This is the user name assigned when signing in with a Microsoft Account.)
尝试从指定的 SpecialFolder 向上导航很容易出现问题。 导致文件夹不在您期望的位置 - 用户可以自行移动它们、GPO 可以移动它们、文件夹重定向到 UNC 路径等。
有很多原因会 .microsoft.com/en-us/library/77zkk0b6.aspx" rel="nofollow noreferrer">用户配置文件的环境变量 应反映任何这些可能的问题。
Trying to navigate up from a named SpecialFolder is prone for problems. There are plenty of reasons that the folders won't be where you expect them - users can move them on their own, GPO can move them, folder redirection to UNC paths, etc.
Using the environment variable for the userprofile should reflect any of those possible issues.
尝试:
Try:
当有 API 可以获取您想要的信息时,使用环境变量或硬编码的父文件夹偏移量从来都不是一个好主意,请调用
SHGetSpecialFolderPath(...,CSIDL_PROFILE,...)
Messing around with environment variables or hard-coded parent folder offsets is never a good idea when there is a API to get the info you want, call
SHGetSpecialFolderPath(...,CSIDL_PROFILE,...)
您可以使用以下代码:
更多信息请参阅:使用 C# 获取 WinXP 和 WinCE 中的当前目录路径
you can use the following code:
more information see: Get Current Directory Path in both WinXP and WinCE with C#