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


Odpowiedzi:


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

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);
 }

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.