Comment obtenir un chemin d'accès au bureau pour l'utilisateur actuel en C #?


355

Comment obtenir un chemin d'accès au bureau pour l'utilisateur actuel en C #?

La seule chose que j'ai pu trouver était la classe VB.NET uniquement SpecialDirectories, qui a cette propriété:

My.Computer.FileSystem.SpecialDirectories.Desktop

Comment puis-je faire cela en C #?

Réponses:


776
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

Les éléments renvoyés par ce dossier sont différents de ce que montre l'Explorateur Windows. Par exemple, dans mon XP, il n'inclut pas Mes documents, Mon ordinateur, Mes emplacements réseau, la Corbeille et certains autres raccourcis. Une idée comment obtenir les mêmes entrées que l'Explorateur Windows?
newman

7
Peut-être que vous recherchez SpecialFolder.DesktopDirectory? Il s'agit du dossier physique au lieu de la logique.
gimlichael

1
Cela me renvoie le bureau de l'utilisateur administrateur si le programme est exécuté en tant qu'administrateur
mrid

23
 string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 string extension = ".log";
 filePath += @"\Error Log\" + extension;
 if (!Directory.Exists(filePath))
 {
      Directory.CreateDirectory(filePath);
 }

8
pas sûr que c'est une bonne idée de créer un répertoire de bureau ... mais la validation sur l'existence du chemin 1er est toujours une bonne idée.
Thierry Savard Saucier

4
Directory.CreateDirectoryvérifie déjà si le répertoire existe avant de le créer, donc votre ifinstruction est redondante. Je ne sais pas si cette fonctionnalité provient d'une version ultérieure de C #, mais j'ai pensé à le mentionner.
emsimpson92

0
// Environment.GetFolderPath
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); // Current User's Application Data
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); // All User's Application Data
Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles); // Program Files
Environment.GetFolderPath(Environment.SpecialFolder.Cookies); // Internet Cookie
Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Logical Desktop
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); // Physical Desktop
Environment.GetFolderPath(Environment.SpecialFolder.Favorites); // Favorites
Environment.GetFolderPath(Environment.SpecialFolder.History); // Internet History
Environment.GetFolderPath(Environment.SpecialFolder.InternetCache); // Internet Cache
Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); // "My Computer" Folder
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // "My Documents" Folder
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); // "My Music" Folder
Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); // "My Pictures" Folder
Environment.GetFolderPath(Environment.SpecialFolder.Personal); // "My Document" Folder
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); // Program files Folder
Environment.GetFolderPath(Environment.SpecialFolder.Programs); // Programs Folder
Environment.GetFolderPath(Environment.SpecialFolder.Recent); // Recent Folder
Environment.GetFolderPath(Environment.SpecialFolder.SendTo); // "Sent to" Folder
Environment.GetFolderPath(Environment.SpecialFolder.StartMenu); // Start Menu
Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Startup
Environment.GetFolderPath(Environment.SpecialFolder.System); // System Folder
Environment.GetFolderPath(Environment.SpecialFolder.Templates); // Document Templates
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.