Usando esto:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Obtengo esta salida:
"C:\\Documents and Settings\\[USER]\\Application Data"
¿Cómo puedo obtener el directorio raíz de todos los usuarios? es decir:
"C:\\Documents and Settings\\[USER]\\"
Respuestas:
Quizás esta sea una buena solución: teniendo en cuenta si se trata de Vista / Win7 o XP y sin utilizar variables de entorno:
Aunque usar la variable de entorno es mucho más claro.
fuente
Tratar:
Editar:
Si la versión de .NET que está utilizando es 4 o superior, puede utilizar la
Environment.SpecialFolder
enumeración:fuente
Puede obtener la ruta UserProfile con solo esto:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
fuente
También es muy útil, al investigar la
Environment.SpecialFolder
enumeración. Utilice LINQPad o cree una solución y ejecute este código:Este es el resultado en mi máquina:
("fisch" son las primeras 5 letras de mi apellido. Este es el nombre de usuario asignado al iniciar sesión con una cuenta de Microsoft).
fuente
Intentar navegar hacia arriba desde una carpeta especial con nombre es propenso a tener problemas. Hay muchas razones por las que las carpetas no estarán donde las espera: los usuarios pueden moverlas por su cuenta, GPO puede moverlas, redireccionar carpetas a rutas UNC, etc.
El uso de la variable de entorno para el perfil de usuario debería reflejar cualquiera de esos posibles problemas.
fuente
Tratar:
fuente
Jugar con variables de entorno o compensaciones de carpeta principal codificadas nunca es una buena idea cuando hay una API para obtener la información que desea, llame
SHGetSpecialFolderPath(...,CSIDL_PROFILE,...)
fuente
fuente
puede utilizar el siguiente código:
más información ver: Obtener la ruta del directorio actual en WinXP y WinCE con C #
fuente