C #에서 현재 사용자의 데스크톱 경로를 얻는 방법은 무엇입니까?


답변:


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

이 폴더에서 반환 된 항목은 창 탐색기에 표시되는 항목과 다릅니다. 예를 들어 XP에서는 내 문서, 내 컴퓨터, 내 네트워크 환경, 휴지통 및 기타 바로 가기가 포함되어 있지 않습니다. Windows 탐색기와 동일한 항목을 얻는 방법에 대한 아이디어가 있습니까?
newman

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.