内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
好的,我已经检查过Environment.SpecialFolder,但是这里没有任何内容。
我想在C#中获取当前用户的主目录。(例如,c:\documents and settings\user
在XP下,c:\users\user
在Vista下,/home/user
在Unix下)。
我知道我可以阅读环境变量来发现这一点,但我想以跨平台的方式来做到这一点。
有没有什么办法可以用.NET来做到这一点(最好使用mscorlib)?
更新:好的,这是我最终使用的代码:
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
Environment.SpecialFolder.Personal
实际上不会返回主文件夹,它会返回我的文档文件夹。在Win32上获取主文件夹的最安全方法是阅读%HOMEDRIVE%%HOMEPATH%
。
编辑补充:对于跨平台(Windows / Unix)C#,我会$HOME
在Unix和OSX以及%HOMEDRIVE%%HOMEPATH%
Windows上阅读。