Як знайти шлях до робочого столу для поточного користувача в C #?


355

Як отримати шлях до робочого столу для поточного користувача в C #?

Єдине, що я міг знайти, це лише клас VB.NET 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-го завжди є хорошою ідеєю.
Тьєррі Савард Сосьє

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.