Jak uzyskać ścieżkę do pulpitu dla bieżącego użytkownika w C #?

355

Jak uzyskać ścieżkę do pulpitu dla bieżącego użytkownika w C #?

Jedyne, co mogłem znaleźć, to klasa tylko VB.NET SpecialDirectories, która ma tę właściwość:

My.Computer.FileSystem.SpecialDirectories.Desktop

Jak mogę to zrobić w C #?

Cristian Diaconescu
źródło

Odpowiedzi:

776
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
Marc Gravell
źródło
Elementy zwrócone z tego folderu różnią się od tego, co pokazuje Eksplorator Windows. Np. W moim XP nie zawiera Moich dokumentów, Mojego komputera, Moich miejsc sieciowych, Kosza i niektórych innych skrótów. Masz pomysł, jak uzyskać te same wpisy, co Eksplorator Windows?
newman
7
Może szukasz SpecialFolder.DesktopDirectory? To jest folder fizyczny zamiast logicznego.
gimlichael
1
To zwraca mi pulpit administratora, jeśli program jest uruchamiany jako 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
źródło
8
nie jestem pewien, czy dobrym pomysłem jest utworzenie katalogu na pulpicie ... ale sprawdzanie poprawności istnienia ścieżki 1st jest zawsze dobrym pomysłem.
Thierry Savard Saucier
4
Directory.CreateDirectoryjuż sprawdza, czy katalog istnieje przed jego utworzeniem, więc twoja ifinstrukcja jest zbędna. Nie jestem pewien, czy ta funkcja pochodzi z późniejszej wersji C #, ale pomyślałem, że wspomnę o tym.
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
źródło