วิธีรับเส้นทางไปยังเดสก์ท็อปสำหรับผู้ใช้ปัจจุบันใน C # ได้อย่างไร


355

ฉันจะหาพา ธ ไปยังเดสก์ท็อปสำหรับผู้ใช้ปัจจุบันใน C # ได้อย่างไร

สิ่งเดียวที่ฉันหาได้คือคลาส VB.NET-only SpecialDirectoriesซึ่งมีคุณสมบัตินี้:

My.Computer.FileSystem.SpecialDirectories.Desktop

ฉันจะทำสิ่งนี้ใน C # ได้อย่างไร

คำตอบ:


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

รายการที่ส่งคืนจากโฟลเดอร์นี้แตกต่างจากที่แสดงใน Window Explorer เช่นใน XP ของฉันไม่รวมเอกสารของฉัน, คอมพิวเตอร์ของฉัน, ตำแหน่งเครือข่ายของฉัน, ถังรีไซเคิลและทางลัดอื่น ๆ มีความคิดวิธีรับรายการเดียวกันกับ Windows Explorer อย่างไร
นิวแมน

7
บางทีคุณกำลังมองหา SpecialFolder.DesktopDirectory? นี่คือโฟลเดอร์ฟิสิคัลแทนที่จะเป็นโลจิคัล
gimlichael

1
สิ่งนี้จะส่งคืนเดสก์ท็อปผู้ใช้ของผู้ดูแลระบบให้ฉันหากโปรแกรมทำงานเป็นผู้ดูแลระบบ
mrid

23
 string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 string extension = ".log";
 filePath += @"\Error Log\" + extension;
 if (!Directory.Exists(filePath))
 {
      Directory.CreateDirectory(filePath);
 }

8
ไม่แน่ใจว่าเป็นความคิดที่ดีที่จะสร้างไดเรกทอรีเดสก์ท็อป ... แต่การตรวจสอบความถูกต้องของเส้นทางที่ 1 นั้นเป็นความคิดที่ดีเสมอ
Thierry Savard Saucier

4
Directory.CreateDirectoryตรวจสอบเพื่อดูว่ามีไดเรกทอรีอยู่ก่อนสร้างหรือไม่ดังนั้นifคำสั่งของคุณจึงซ้ำซ้อน ไม่แน่ใจว่าคุณสมบัตินี้มาจากรุ่น C # ในภายหลัง แต่คิดว่าฉันจะพูดถึงมัน
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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.