Okay, ich habe Environment.SpecialFolder überprüft, aber da ist nichts drin.Den Pfad des Home-Verzeichnisses in C# abrufen?
Ich möchte das Home-Verzeichnis des aktuellen Benutzers in C# abrufen. (Z c:\documents and settings\user
unter XP, c:\users\user
unter Vista und /home/user
unter Unix.)
Ich weiß, ich Umgebungsvariablen lesen kann dies herauszufinden, aber ich möchte, dies zu tun in einer plattformübergreifende Art und Weise.
Gibt es eine Möglichkeit, dies mit .NET (vorzugsweise mit mscorlib) tun?
UPDATE: Okay, das ist der Code ich am Ende mit:
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
BOOM. Schnellste Waffe im Westen: P –
Dunno über deine Maschine, aber auf meiner XP-Box% HOMEDRIVE %% HOMEPATH% ist ein Netzwerkverzeichnis, nicht c: \ Dokumente und Einstellungen \ user \ MSalters \ – MSalters
Um ehrlich zu sein, halte ich das genau Problem, um eine Unterimplementierung von .NET zu sein ... Sie sollten sich die Dokumentation für CSIDLS (http://msdn.microsoft.com/en-us/library/bb762494.aspx) ansehen, um eine vollständige Liste dessen zu sehen, was Windows unterstützt: Was Sie tatsächlich suchen, ist CSIDL_PROFILE, das in Windows, aber nicht von .NET aus einem unergründlichen Grund unterstützt wird. –