Bagaimana cara mendapatkan jalur ke desktop untuk pengguna saat ini di C #?


355

Bagaimana cara mendapatkan jalur ke desktop untuk pengguna saat ini di C #?

Satu-satunya hal yang dapat saya temukan adalah kelas VB.NET-only SpecialDirectories, yang memiliki properti ini:

My.Computer.FileSystem.SpecialDirectories.Desktop

Bagaimana saya bisa melakukan ini dalam C #?

Jawaban:


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

Item yang dikembalikan dari folder ini berbeda dengan yang ditampilkan Window Explorer. Misalnya di XP saya, itu tidak termasuk Dokumen Saya, Komputer Saya, Tempat Jaringan Saya, Keranjang Sampah dan beberapa cara pintas lainnya. Adakah yang tahu cara mendapatkan entri yang sama dengan Windows Explorer?
pemain baru

7
Mungkin Anda mencari SpecialFolder.DesktopDirectory? Ini adalah folder fisik, bukan yang logis.
gimlichael

1
Ini mengembalikan saya desktop pengguna admin jika program dijalankan sebagai 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
tidak yakin itu ide yang bagus untuk membuat direktori desktop ... tetapi validasi pada keberadaan path 1 selalu merupakan ide yang baik.
Thierry Savard Saucier

4
Directory.CreateDirectorysudah memeriksa untuk melihat apakah direktori ada sebelum membuatnya, jadi ifpernyataan Anda berlebihan. Tidak yakin apakah fitur ini dari versi C # yang lebih baru, tetapi saya pikir saya akan menyebutkannya.
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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.