特殊フォルダを取得する
ふと気づ来ましたが、ディレクトリとフォルダの言葉をごっちゃで使っているので整理すると、ディレクトリは実際にドライブのどこに保存してあるかデータの住所を表しているのに対して、フォルダはWindowsが管理している仮想空間のどこにデータがあるかを示します。例えば、デスクトップ上にあるマイドキュメントは実際にデスクトップディレクトリの中にマイドキュメントディレクトリがあるわけではないですよね。
そんな仮想空間で存在するフォルダは実際にはどのディレクトリにアクセスしているか調べる方法を説明します。
Environment.SpecialFolder列挙体
名前空間Systemの中にあるEnivormentクラスのSpecialFolder列挙定数として特殊フォルダの情報は記録されています。特殊フォルダの種類は次のものがあります。| メンバー名 | 説明 |
| ApplicationData | 現在のローミングユーザーのアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。ローミングユーザーは、ネットワーク上の複数のコンピューターで作業します。 ローミングユーザーのプロファイルはネットワーク上のサーバーで保持され、ユーザーがログオンするとシステムに読み込まれます。 |
| CommonApplicationData | すべてのユーザーが使用するアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。 |
| LocalApplicationData | 現在の非ローミングユーザーが使用するアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。 |
| Cookies | インターネットCookieの共通リポジトリとして機能するディレクトリ。 |
| Desktop | 物理的なファイルシステム上の場所ではない論理的なデスクトップ。 |
| Favorites | ユーザーのお気に入り項目の共通リポジトリとして機能するディレクトリ。 |
| History | インターネットの履歴項目の共通リポジトリとして機能するディレクトリ。 |
| InternetCache | 一時インターネットファイルの共通リポジトリとして機能するディレクトリ。 |
| Programs | ユーザーのプログラムグループを格納するディレクトリ。 |
| MyComputer | マイ コンピューターフォルダー。 メモ)マイコンピューターフォルダーに対するパスが定義されていないので、MyComputer定数は、常に空の文字列("")を生成します。 |
| MyMusic | "マイ ミュージック"フォルダー。 |
| MyPictures | "マイ ピクチャ"フォルダー。 |
| Recent | ユーザーが最近使用したドキュメントを格納するディレクトリ。 |
| SendTo | [送る]メニュー項目を格納するディレクトリ。 |
| StartMenu | [スタート]メニュー項目を格納するディレクトリ。 |
| Startup | ユーザーの[スタートアップ]プログラムグループに対応するディレクトリ。 ユーザーがWindowsNT 以降のバージョンのWindowsにログオンするか、それを起動するか、またはWindows98を起動すると、これらのプログラムが起動されます。 |
| System | Systemディレクトリ。 |
| Templates | ドキュメントテンプレートの共通リポジトリとして機能するディレクトリ。 |
| DesktopDirectory | デスクトップ上のファイルオブジェクトを物理的に格納するために使用されるディレクトリ。 仮想フォルダーであるデスクトップフォルダー自体とこのディレクトリフォルダーを混同しないようにしてください。 |
| Personal | ドキュメントの共通リポジトリとして機能するディレクトリ。 このメンバーはMyDocumentsに対応しています。 |
| MyDocuments | "マイ ドキュメント"フォルダー。 このメンバーはPersonalに対応しています。 |
| ProgramFiles | プログラムファイルディレクトリ。 |
| CommonProgramFiles | アプリケーション間で共有されるコンポーネント用のディレクトリ。 |
| AdminTools | 個々のユーザーの管理ツールを格納するために使用されるファイルシステムディレクトリ。Microsoft管理コンソール(MMC:Microsoft Management Console)は、カスタマイズされたコンソールをこのディレクトリに保存します。このディレクトリは、ユーザーと共に移動します。 |
| CDBurning | CDへの書き込みを待機しているファイルのステージング領域として機能するファイルシステムディレクトリ。 |
| CommonAdminTools | コンピューターのすべてのユーザーの管理ツールを格納するファイルシステムディレクトリ。 |
| CommonDocuments | すべてのユーザーに共通のドキュメントを格納するファイルシステムディレクトリ。この特別なフォルダーは、Shfolder.dllがインストールされているWindowsNTシステム、Windows95システム、およびWindows98システムで有効です。 |
| CommonMusic | すべてのユーザーに共通のミュージックファイルを格納するリポジトリの役割をするファイルシステムディレクトリ。 |
| CommonOemLinks | WindowsVistaでは、この値は下位互換性のために認識されますが、特別なフォルダー自体は使用されなくなりました。 |
| CommonPictures | すべてのユーザーに共通のイメージファイルを格納するリポジトリの役割をするファイルシステムディレクトリ。 |
| CommonStartMenu | すべてのユーザーの[スタート]メニューに表示されるプログラムおよびフォルダーを格納するファイルシステムディレクトリ。この特別なフォルダーは、WindowsNTシステムでのみ有効です。 |
| CommonPrograms | アプリケーション間で共有されるコンポーネントを格納するフォルダー。この特別なフォルダーは、WindowsNT、Windows2000、およびWindowsXPの各システムでのみ有効です。 |
| CommonStartup | すべてのユーザーの[スタートアップ]フォルダーに表示されるプログラムを格納するファイルシステムディレクトリ。この特別なフォルダーは、WindowsNTシステムでのみ有効です。 |
| CommonDesktopDirectory | すべてのユーザーのデスクトップに表示されるファイルおよびフォルダーを格納するファイルシステムディレクトリ。この特別なフォルダーは、WindowsNTシステムでのみ有効です。 |
| CommonTemplates | すべてのユーザーが使用できるテンプレートを格納するファイルシステムディレクトリ。この特別なフォルダーは、WindowsNTシステムでのみ有効です。 |
| CommonVideos | すべてのユーザーに共通のビデオファイルを格納するリポジトリの役割をするファイルシステムディレクトリ。 |
| Fonts | フォントが含まれる仮想フォルダー。 |
| MyVideos | ユーザーが所有しているビデオを格納するリポジトリの役割をするファイルシステムディレクトリ。 |
| NetworkShortcuts | "マイ ネットワーク"仮想フォルダーに表示できるリンクオブジェクトを格納するファイルシステムディレクトリ。 |
| PrinterShortcuts | "プリンター"仮想フォルダーに表示できるリンクオブジェクトを格納するファイルシステムディレクトリ。 |
| UserProfile | ユーザーのプロファイルフォルダー。アプリケーションでは、この階層にファイルやフォルダーを作成しないでください。アプリケーションのデータは、ApplicationDataで参照される場所に配置する必要があります。 |
| CommonProgramFilesX86 | Program Filesフォルダー。 |
| ProgramFilesX86 | Program Filesフォルダー。 |
| Resources | リソースデータを格納するファイルシステムディレクトリ。 |
| LocalizedResources | ローカライズされたリソースデータを格納するファイルシステムディレクトリ。 |
| SystemX86 | Windowsのシステムフォルダー。 |
| Windows | WindowsディレクトリまたはSYSROOT。これは、%windir%環境変数または%SYSTEMROOT%環境変数に対応します。 |
これらの列挙体は、System.Environment.GetFolderPathメゾットを使って取得できます。GetFolderPathメソットを使用して、Windowsディレクトリを取得する方法は次の通りです。