Come ottenere un percorso sul desktop per l'utente corrente in C #?


355

Come posso ottenere un percorso sul desktop per l'utente corrente in C #?

L'unica cosa che ho trovato è stata la classe solo VB.NET SpecialDirectories, che ha questa proprietà:

My.Computer.FileSystem.SpecialDirectories.Desktop

Come posso farlo in C #?

Risposte:


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

Gli elementi restituiti da questa cartella sono diversi da quelli mostrati da Esplora risorse. Ad esempio nel mio XP, non include Documenti, Risorse del computer, Risorse di rete, Cestino e alcune altre scorciatoie. Qualche idea su come ottenere le stesse voci di Windows Explorer?
Newman,

7
Forse stai cercando SpecialFolder.DesktopDirectory? Questa è la cartella fisica anziché logica.
gimlichael,

1
Questo mi restituisce il desktop dell'utente amministratore se il programma viene eseguito come admin
mrid

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

8
non sono sicuro che sia una buona idea creare una directory desktop ... ma la convalida sull'esistenza del percorso 1 ° è sempre una buona idea.
Thierry Savard Saucier,

4
Directory.CreateDirectorycontrolla già se la directory esiste prima di crearla, quindi la tua ifdichiarazione è ridondante. Non sono sicuro che questa funzionalità sia di una versione successiva di C #, ma ho pensato di menzionarla.
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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.