123 votes

Comment puis-je obtenir le répertoire de l'utilisateur actuel?

En utilisant ceci:

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
 

Je reçois cette sortie:

 "C:\\Documents and Settings\\[USER]\\Application Data"
 

Comment puis-je avoir

 "C:\\Documents and Settings\\[USER]\\"
 

?

198voto

Thomas Points 2295

Essayer:

 System.Environment.GetEnvironmentVariable("USERPROFILE");
 

Modifier:

Si la version de .NET que vous utilisez est une version 4 ou supérieure, vous pouvez utiliser l'énumération Environment.SpecialFolder :

 Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));
 

56voto

Anthony Kolesov Points 1156

Peut-être que ce sera une bonne solution: prendre en compte s'il s'agit de Vista / Win7 ou XP et sans utiliser de variables d'environnement:

 string path = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName;
if ( Environment.OSVersion.Version.Major >= 6 ) {
    path = Directory.GetParent(path);
}
 

Bien que l'utilisation de la variable d'environnement soit beaucoup plus claire.

29voto

Lee Points 31

Vous pouvez obtenir le chemin UserProfile avec juste ceci:

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

4voto

Scott Ivey Points 19577
 Environment.GetEnvironmentVariable("userprofile")
 

Essayer de naviguer à partir d'un dossier spécial nommé est sujet à des problèmes. Il existe de nombreuses raisons pour lesquelles les dossiers ne seront pas où vous vous attendez: les utilisateurs peuvent les déplacer eux-mêmes, les GPO peuvent les déplacer, la redirection de dossiers vers des chemins UNC, etc.

L'utilisation de la variable d'environnement pour le profil utilisateur doit refléter l'un de ces problèmes possibles.

3voto

Jay Riggs Points 30783

Essayer:

 System.IO.Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName/
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X