首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取C#中主目录的路径?

获取C#中主目录的路径?
EN

Stack Overflow用户
提问于 2009-07-17 14:42:01
回答 8查看 77.9K关注 0票数 120

好吧,我查过Environment.SpecialFolder了,但里面什么都没有。

我想要获取当前用户在C#中的主目录。(例如XP下的c:\documents and settings\user、Vista下的c:\users\user和Unix下的/home/user。)

我知道我可以读取环境变量来找出这一点,但我想以一种跨平台的方式来做这件事。

有没有什么办法可以用.NET (最好是mscorlib)做到这一点?

更新:好的,这是我最终使用的代码:

代码语言:javascript
复制
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix || 
                   Environment.OSVersion.Platform == PlatformID.MacOSX)
    ? Environment.GetEnvironmentVariable("HOME")
    : Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-07-17 14:48:25

Environment.SpecialFolder.Personal实际上并不返回主文件夹,而是返回My Documents文件夹。在Win32上获取主文件夹的最安全的方法是阅读%HOMEDRIVE%%HOMEPATH%。读取环境变量实际上是非常便携的(在Unix和Windows之间),所以我不确定为什么发帖人不想这么做。

编辑添加:对于跨平台( Windows / Unix ) C#,我在Unix和OSX上阅读了$HOME,在Windows上阅读了%HOMEDRIVE%%HOMEPATH%

票数 56
EN

Stack Overflow用户

发布于 2011-09-13 23:26:37

你正在寻找Environment.SpecialFolder.UserProfile,它指的是Windows上的C:\Users\myname和Unix/Linux上的/home/myname

代码语言:javascript
复制
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)

请注意,Environment.SpecialFolder.Personal是My Documents (或win7及以上版本的Documents ),但与Unix/Linux上的主目录相同。

票数 121
EN

Stack Overflow用户

发布于 2009-07-17 14:44:22

我相信你要找的是:

代码语言:javascript
复制
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)

作为参考,它实际上包含在mscorlib中。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1143706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档