Хорошо, я проверил Environment.SpecialFolder, но для этого нет ничего.Как добраться до исходного каталога в C#?
Я хочу получить домашний каталог текущего пользователя на C#. (Например c:\documents and settings\user
под XP, c:\users\user
под Vista, и /home/user
под Unix.)
Я знаю, что я могу читать переменных окружения, чтобы это выяснить, но я хочу сделать это в кросс-платформенной способом.
Есть ли способ, которым я могу это сделать с .NET (желательно с использованием mscorlib)?
UPDATE: Хорошо, это код, который я закончил с использованием:
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
BOOM. Самый быстрый пистолет на западе: P –
Dunno о вашей машине, но на моей коробке XP% HOMEDRIVE %% HOMEPATH% - это сетевой каталог, а не c: \ Documents and Settings \ user \ MSalters \ – MSalters
Честно говоря, я считаю это точным проблема заключается в недоиспользовании .NET ... вы должны посмотреть документацию для CSIDLS (http://msdn.microsoft.com/en-us/library/bb762494.aspx), чтобы увидеть полный список того, что поддерживает Windows: Фактически вы ищете CSIDL_PROFILE, который поддерживается в Windows, но не .NET по какой-то непостижимой причине. –