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 #?

Cristian Diaconescu
la source

Réponses:

776
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
Marc Gravell
la source
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);
 }
bipin
la source
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
Xiaohuan ZHOU
la source