Wie erhalte ich einen Pfad zum Desktop für den aktuellen Benutzer in C #?

355

Wie erhalte ich einen Pfad zum Desktop für den aktuellen Benutzer in C #?

Das einzige, was ich finden konnte, war die Nur-VB.NET-Klasse SpecialDirectories, die diese Eigenschaft hat:

My.Computer.FileSystem.SpecialDirectories.Desktop

Wie kann ich das in C # machen?

Cristian Diaconescu
quelle

Antworten:

776
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
Marc Gravell
quelle
Die von diesem Ordner zurückgegebenen Elemente unterscheiden sich von den im Fenster-Explorer angezeigten Elementen. In meinen XP sind beispielsweise "Eigene Dateien", "Arbeitsplatz", "Netzwerkumgebung", "Papierkorb" und einige andere Verknüpfungen nicht enthalten. Haben Sie eine Idee, wie Sie dieselben Einträge wie im Windows Explorer erhalten?
Newman
7
Vielleicht suchen Sie nach SpecialFolder.DesktopDirectory? Dies ist der physische Ordner anstelle des logischen.
Gimlichael
1
Dies gibt mir den Administrator-Desktop zurück, wenn das Programm als Administrator ausgeführt wird
18.
23
 string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 string extension = ".log";
 filePath += @"\Error Log\" + extension;
 if (!Directory.Exists(filePath))
 {
      Directory.CreateDirectory(filePath);
 }
Bipin
quelle
8
Ich bin mir nicht sicher, ob es eine gute Idee ist, ein Desktop-Verzeichnis zu erstellen ... aber die Überprüfung der Existenz des ersten Pfads ist immer eine gute Idee.
Thierry Savard Saucier
4
Directory.CreateDirectoryÜberprüft bereits vor dem Erstellen, ob das Verzeichnis vorhanden ist, sodass Ihre ifAnweisung redundant ist. Ich bin mir nicht sicher, ob diese Funktion aus einer späteren Version von C # stammt, dachte aber, ich würde sie erwähnen.
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
quelle