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自体のセキュリティを低下させてしまう可能性もある。

この連載の記事
-
第474回
PC
Windowsでのコマンドラインのヒストリ機能 -
第473回
PC
Windowsは内部的にどうやってインターネットへの接続状態を確認している? -
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? - この連載の一覧へ