Como obter um caminho para a área de trabalho para o usuário atual em c #?

355

Como obtenho um caminho para a área de trabalho do usuário atual em c #?

A única coisa que pude encontrar foi a classe VB.NET-only SpecialDirectories, que possui esta propriedade:

My.Computer.FileSystem.SpecialDirectories.Desktop

Como posso fazer isso em c #?

Cristian Diaconescu
fonte

Respostas:

776
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
Marc Gravell
fonte
Os itens retornados desta pasta são diferentes do que o Windows Explorer mostra. Por exemplo, no meu XP, ele não inclui Meus Documentos, Meu Computador, Meus Locais de Rede, Lixeira e alguns outros atalhos. Alguma idéia de como obter as mesmas entradas do Windows Explorer?
21413 newman
7
Talvez você esteja procurando por SpecialFolder.DesktopDirectory? Esta é a pasta física em vez da lógica.
Gimlichael
11
Isso me retorna o desktop do usuário administrador se o programa é executado como admin
mrid
23
 string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 string extension = ".log";
 filePath += @"\Error Log\" + extension;
 if (!Directory.Exists(filePath))
 {
      Directory.CreateDirectory(filePath);
 }
bipin
fonte
8
Não tenho certeza se é uma boa idéia criar um diretório da área de trabalho ... mas a validação da existência do caminho 1st é sempre uma boa idéia.
Thierry Savard Saucier
4
Directory.CreateDirectoryjá verifica se o diretório existe antes de criá-lo, portanto sua ifinstrução é redundante. Não tenho certeza se esse recurso é de uma versão posterior do C #, mas pensei em mencioná-lo.
precisa saber é o seguinte
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
fonte