Làm cách nào để có đường dẫn đến màn hình nền cho người dùng hiện tại trong C #?


355

Làm cách nào để có đường dẫn đến màn hình nền cho người dùng hiện tại trong C #?

Điều duy nhất tôi có thể tìm thấy là lớp chỉ VB.NET SpecialDirectories, có thuộc tính này:

My.Computer.FileSystem.SpecialDirectories.Desktop

Làm thế nào tôi có thể làm điều này trong C #?

Câu trả lời:


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

Các mục được trả về từ thư mục này khác với những gì Window Explorer hiển thị. Ví dụ: trong XP của tôi, nó không bao gồm Tài liệu của tôi, Máy tính của tôi, Địa điểm mạng của tôi, Thùng rác và một số phím tắt khác. Bất kỳ ý tưởng làm thế nào để có được các mục tương tự như Windows Explorer?
newman

7
Có lẽ bạn đang tìm kiếm SpecialFolder.DesktopDirectory? Đây là thư mục vật lý thay vì logic.
gimlichael

1
Điều này trả lại cho tôi màn hình người dùng quản trị viên nếu chương trình được chạy với tư cách quản trị viên
mrid

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

8
không chắc chắn đó là một ý tưởng tốt để tạo một thư mục máy tính để bàn ... nhưng xác nhận về sự tồn tại của đường dẫn thứ 1 luôn là một ý tưởng tốt.
Thierry Savard Saucier

4
Directory.CreateDirectoryđã kiểm tra xem thư mục có tồn tại trước khi tạo không, vì vậy ifcâu lệnh của bạn là dự phòng. Không chắc tính năng này có phải là phiên bản mới hơn của C # hay không, nhưng tôi nghĩ tôi sẽ đề cập đến nó.
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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.