C#で現在のユーザーのデスクトップへのパスを取得する方法


355

C#で現在のユーザーのデスクトップへのパスを取得するにはどうすればよいですか?

私が見つけることができた唯一のものは、SpecialDirectoriesこのプロパティを持つVB.NETのみのクラスでした:

My.Computer.FileSystem.SpecialDirectories.Desktop

C#でこれを行うにはどうすればよいですか?

回答:


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

このフォルダーから返されるアイテムは、ウィンドウエクスプローラーに表示されるものとは異なります。たとえば、私のXPでは、マイドキュメント、マイコンピュータ、マイネットワーク、ごみ箱、その他のショートカットは含まれていません。Windowsエクスプローラと同じエントリを取得する方法はありますか?
ニューマン2013年

7
たぶん、あなたはSpecialFolder.DesktopDirectoryを探していますか?これは、論理フォルダではなく物理フォルダです。
gimlichael 2013

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、2014

4
Directory.CreateDirectory作成する前にディレクトリが存在するかどうかをすでに確認しているため、ifステートメントは冗長です。この機能がC#の新しいバージョンのものかどうかはわかりませんが、私が言及したいと思いました。
emsimpson92 2018

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.