Bien, he comprobado Environment.SpecialFolder, pero no hay nada allí para esto.Obteniendo la ruta del directorio de inicio en C#?
Quiero obtener el directorio de inicio del usuario actual en C#. (Por ejemplo c:\documents and settings\user
bajo XP, c:\users\user
en Vista, y /home/user
bajo Unix.)
Sé que puedo leer variables de entorno para averiguar esto, pero yo quiero hacer esto de una manera multiplataforma.
¿Hay alguna manera de que pueda hacer esto con .NET (preferentemente con mscorlib)?
ACTUALIZACIÓN: Bueno, este es el código que terminé usando:
string homePath = (Environment.OSVersion.Platform == PlatformID.Unix ||
Environment.OSVersion.Platform == PlatformID.MacOSX)
? Environment.GetEnvironmentVariable("HOME")
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
BOOM. El arma más rápida en el oeste: P –
No sé sobre su máquina, pero en mi cuadro de XP% HOMEDRIVE %% HOMEPATH% es un directorio de red, no c: \ Documents and Settings \ user \ MSalters \ – MSalters
Para ser honesto, considero esto exacto El problema es una infraejecución de .NET ... debería consultar la documentación de CSIDLS (http://msdn.microsoft.com/en-us/library/bb762494.aspx) para ver una lista completa de lo que Windows admite: Lo que realmente está buscando es CSIDL_PROFILE, que es compatible con Windows, pero no con .NET por algún motivo insondable. –