Windowsにおいて、「フォルダー」と「ディレクトリ」は
実は厳格に区別されている
Windowsにおけるフォルダー(Folder)とディレクトリ(Directory)の違いをご存じだろうか? Windowsにおいてフォルダーとは、「仮想フォルダー」(Virtual folder)と「ファイルシステムフォルダー」(File system folder)からなるオブジェクトであり、ディレクトリとはファイルシステムフォルダーのみを指すオブジェクトだ。MS-DOS時代には、仮想フォルダーがなかったので、すべてディレクトリーと呼んでいた。
このため、今でもフォルダーの意味でディレクトリと呼ぶ人がいて、意味が曖昧になっているが、少なくともWindowsの中では厳密に区別されている。レジストリのHKEY_CLASSES_ROOTにあるprogidの中に「Folder」「Directory」があり、それそれ違った役割を持っている。このレジストリエントリは、エクスプローラーでフォルダーやディレクトリなどを右クリックしたときの拡張項目などを定義するのにも使われている。
このあたりに関しては、以下の過去記事を参考にしてほしい(「エクスプローラーの右クリックメニューをカスタマイズする」)。Windows 8.1の頃の記事だが、Windows 10でもこの部分は変わっていない。
気づかない人もいるかもしれないが、
どのWindowsマシンにも「仮想フォルダー」は存在する
Windowsでの代表的な仮想フォルダーとしては「コントロールパネル」がある。また、プログラムがAPI(シェル名前空間拡張API)を使い、仮想フォルダーを登録することができる。仮想フォルダーの仕組みはWindows 95で導入され、このときMS-DOS以来のディレクトリと仮想フォルダーを合わせてフォルダーと総称することになった。
ディレクトリ(ファイルシステムフォルダー)は、実際には特殊なファイルであり、その中に属するファイルのリストを保持している。また、ディレクトリもファイルの1種なので、ディレクトリに含めることができ、このような構造を「サブディレクトリ」や「子ディレクトリ」という。
MS-DOSは、最初のバージョンではディレクトリを持たなかったが、2.0で利用できるように改良された。このあたりに関しても、以下の過去記事を参照いただきたい(「Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?」)。
Windows 95では、COM技術を使った「コンポーネント」(オブジェクト)が、OSの機能ブロックとして採用され、コンポーネントを追加していくことで機能拡張もできるようになった。このときに、エクスプローラーもCOM技術を使って機能拡張ができるように作られ、その仕組みの1つとして「仮想フォルダー」機能が組み込まれた。
コントロールパネルは、Windows 1.0から存在するWindowsの機能だが、Windows 95より前は、単独のアプリケーション(contrl.exe)だった。そしてWindows 95でエクスプローラーの仮想フォルダーとして実装された。現在のコントロールパネルも仮想フォルダーであり、サードパーティ製アプリケーションもコントロールパネルにプロパティアイコン(アプレットと呼ばれることもある)を追加できるようになっている。
仮想フォルダーは、エクスプローラーが持つ機能を利用することができる。たとえば、「プログラムと機能」は、メニューの「表示」を使うと、ファイルウィンドウ(エクスプローラーのファイル表示領域)のように特大アイコンやコンテンツ表示形式が利用できる。
また、「詳細」表示にして、カラムヘッダーをカスタマイズすることも可能だ。
コントロールパネルのプロパティアイコンのうち、右クリックして「開く」と「ショートカットの作成」の2項目しか表示されないものは、直接プログラムを起動するアイコンである。
後者の「ショートカットの作成」はどのアイコンにも表示されるので、アイコン固有のメニュー項目は「開く」だけだ。しかし、前述の「プログラムと機能」などでは、「クイックアクセスにピン留めする」など、複数のアイコン固有のメニュー項目がある。これは、エクスプローラーの仮想フォルダー機能の中で、エクスプローラーが提供する機能を使ったもの。この機能ではエクスプローラーのファイルウィンドウにアプリケーションの表示することができる。
このほか、仮想フォルダーにはWindows Vistaで導入されたライブラリ、Windows 95のブリーフケースなどがある。しかし、MicrosoftはWindows 7以降、仮想フォルダーの利用に消極的で、ライブラリなども機能としては残るものの、標準では見えない状態にしてある。
というのも、仮想フォルダーなどのエクスプローラーの拡張機能は、エラーが発生すると致命的な状況が起きやすく、システムが脆弱になる可能性が高いからだ。また、サードパーティのプログラムが、Windows側にコンポーネントとして組み込まれると、そのセキュリティホールなどがWindows自体のセキュリティを低下させてしまう可能性もある。

この連載の記事
-
第398回
PC
Windows Subsystem for Androidの進化を確認 エクスプローラーからのファイルのドラッグ&ドロップが可に -
第397回
PC
Windowsにおけるディスク、ドライブ、パーティションの扱いの違い -
第396回
PC
Windows 11における新規作成コンテキストメニュー -
第395回
PC
Windowsの「近距離共有」は微妙だが、Windows版も登場した「ニアバイシェア」は使える -
第394回
PC
コマンドの出力が長いとき、PowerShellではとりあえずselect-objectでなんとかする -
第393回
PC
Windows 11のWinUI3対応で、MicrosoftはWin32アプリ、さらにWindows自体を改良しようとしている -
第392回
PC
あらためてWindowsにおける2進数、10進数、16進数について -
第391回
PC
WindowsのNTFS/ReFSに搭載されている「再解析ポイント」とは何か? -
第390回
PC
この秋登場予定のWindows 11 Ver.23H2はどうなるか? -
第389回
PC
Windowsにおけるファイルリンクについてあらためて説明する -
第388回
PC
アプリ評価環境「Windows SandBox」のWindows 11での状況 - この連載の一覧へ