ほとんどの人は、「フォルダ」と「ディレクトリ」という用語を同じ意味で使用しています。プログラマーの観点から、違いはありますか?もしそうなら、それは何ですか? OSに依存していますか、それとも広く一般的なコンセンサスがありますか? これ は、少なくとも違いがあることを示唆しています。
Wikipedia の「フォルダのメタファー」セクションを確認してください
状態:
「厳密に言えば、ファイルシステムの概念であるディレクトリと、それを表現するために使用されるグラフィカルユーザーインターフェイスのメタファー(フォルダ)には違いがあります。たとえば、Microsoft Windowsは特別なフォルダの概念を使用して、コンピューターのコンテンツをユーザーにかなり一貫した方法で提供し、ユーザーがWindowsのバージョン間や個々のインストール間で異なる可能性のある絶対ディレクトリパスを処理する必要がないようにします。
ドキュメントのコンテナを参照している場合、フォルダという用語の方が適切です。ディレクトリという用語は、ドキュメントファイルとフォルダーの構造化されたリストがコンピューターに保存される方法を指します。これは、名前、番号、住所のリストを含み、実際のドキュメント自体を含まない電話帳に匹敵します。」
フォルダーは、必ずしもディスク上の物理ディレクトリではありません。たとえば、Windowsのプリンターフォルダーまたはコントロールパネルフォルダーです。
Windows 95では、Windowsエクスプローラーとそれに加えて用語フォルダーが導入されました。フォルダとディレクトリの関係は何ですか?
一部の人々は、Windows 95がディレクトリの名前をフォルダに変更したと信じていますが、実際にはそれ以上です。
Windowsエクスプローラーでは、フォルダーを表示できます。フォルダーは、Shell名前空間のコンテナーです。ディレクトリは、フォルダの一種です。つまり、ファイルシステムの場所に対応するフォルダです。コントロールパネル、ネットワークコンピュータ、プリンタなど、他の種類のフォルダがあります。これらの他の種類のフォルダーは、ファイルに対応しないシェル名前空間のオブジェクトを表します。一般的な用法では、仮想フォルダーという用語は、ディレクトリではないフォルダーを指すために適用されています。つまり、次のオイラー線図があります。
(仮想フォルダー=フォルダー-ディレクトリ)
一般に、Shell名前空間を操作するコードは、ディレクトリやファイルではなく、フォルダーやアイテムを操作して、特定の記憶媒体に結び付けられないようにする必要があります。たとえば、Zipファイルのコンテンツは仮想フォルダーの形式で公開されるため、ファイル自体に制限するコードはZipファイルに移動できません。
ほとんどの場合、それらは交換可能な用語です。ディレクトリはファイルシステムの初期から使用されていた古典的な用語ですが、フォルダはWindowsユーザーにとってはより親しみやすい名前の一種です。
主な違いは、フォルダは論理的な概念であり、必ずしも物理ディレクトリにマッピングされるとは限らないことです。ディレクトリはファイルシステムオブジェクトです。フォルダーはGUIオブジェクトです。 ウィキペディアはこのように説明しています :
オフィスで使用され、元々Apple Lisaによって使用されていたファイルフォルダーに類似している名前フォルダーは、ほとんどすべての最新のオペレーティングシステムのデスクトップ環境で使用されます。物理ファイルフォルダーに視覚的に似ています。
厳密に言えば、ファイルシステムの概念であるディレクトリと、それを表すために使用されるグラフィカルユーザーインターフェイスのメタファー(フォルダ)には違いがあります。たとえば、Microsoft Windowsは特別なフォルダーの概念を使用して、コンピューターのコンテンツをユーザーに提示するのに非常に一貫性のある方法を提供し、ユーザーがWindowsのバージョン間で異なる絶対ディレクトリパスを処理する必要がないようにします。個別のインストール。
ドキュメントのコンテナを参照している場合、フォルダという用語の方が適切です。ディレクトリという用語は、ドキュメントファイルとフォルダーの構造化されたリストがコンピューターに保存される方法を指します。これは、名前、番号、住所のリストを含む電話帳に相当し、実際の文書自体は含まれません。
/usr/bin/
は、通常、コマンドラインコンソールで表示するときにディレクトリと呼ばれますが、グラフィカルファイルマネージャを介してアクセスする場合、ユーザーはフォルダ。mkdir
、cd
)およびFolder(GUI)。Folder:オフィスで使用されるファイルフォルダーに類似した名前フォルダー
類推:
特定のフォルダーが必要な場合は、ディレクトリを使用します。ホテルの管理人に尋ねる特定の部屋が必要です。 ソース
以前は英語のこれら2つの単語の違いを知りませんでした。Windowsレジストリエディターでも、HKEY_CLASSES_ROOT
の下にFolder
とDirectory
の2つのサブキーが見つかりました。
レジストリにいくつかの値を手動で作成し、コンテキストメニュー項目の違いを観察するまで、違いを知りませんでした。 HKEY_CLASSES_ROOT\Folder\Shell
のみにノードを作成すると、system directory
のような仮想フォルダー(別名Recycle Bin
)とファイルシステムディレクトリの両方のコンテキストメニューに表示されることがわかりました。 C:\Windows
。
HKEY_CLASSES_ROOT\Directory\Shell
のみにノードを作成すると、C:\Windows
などのファイルシステムディレクトリのコンテキストメニューにのみ表示され、仮想フォルダーには表示されません。したがって、@ AntonyWが言ったように、Windowsでは、フォルダー=仮想フォルダー+ファイルシステムディレクトリです。
リンクは基本的に技術的な違いを説明しています。ほとんどの場合、人々はそれらを交換可能に使用し、彼らが選択するのは主に彼らがどの環境から来たかに基づいています。
ファイルを変更するアプリケーションのクロスプラットフォーム開発を行っていない限り、違いを知る必要はありません。いくつかの異なるファイルシステムタイプを使用する準備ができたら、すぐにそれらの違いを知っておく必要があります。
どの用語をいつ使用するかを人々が知っていると期待しないでください。違いはあまりにも少数の人々にしか知られていないため、これらの用語は互換性があると考えています。
ファイルエクスプローラー(以前はWindowsエクスプローラーと呼ばれていたGUI)に表示されるフォルダーの名前は、それらが表すディレクトリと必ずしも同じではありません。仮想ストアではなく、大容量記憶装置のプレーンディレクトリである特定のフォルダーをプログラムで開く場合を考えます。これは、ファイルエクスプローラーに表示される名前に基づいてユーザーが指定したとします。この名前は、ディレクトリ上の代替データストリーム(ADS)の情報によって上書きされている可能性があり、プログラムは実際のパス名でファイルを参照しません。
私が遭遇した2つの例では、アプリはユーザーが指定したパス名を開くことができませんでした。これらの例の1つはOneDriveに関連していました。私は他の例の完全な状況を覚えていません。とにかく、表示名はms-properties:$ DATAという名前のADSに保存されます。
CMD.EXEを使用して、DIR/Rを使用してADSをリストできます。エクスプローラーの[プロパティ]メニュー項目を使用してこのようなフォルダーの名前を変更すると、このADSの内容が変更され、エクスプローラーでエンドユーザーに表示される名前が入力されます。ただし、この手順ではディレクトリの名前は変更されません。