none
フォルダーとディレクトリーの違いについて RRS feed

  • 質問


  • こんにちは。
    フォルダーとディレクトリーの違いについて質問です。

    Windowsは基本的にファイルの保存場所として「フォルダー」という言葉を使っていると思います。
    (右クリックメニューの新規作成フォルダーなど)

    C#の場合、フォルダーを作成するときはDirectoryというクラスなどを使いますが、このフォルダーとディレクトリーという用語をどのように使い分けして(C#とMSDNは)使っているのでしょうか。
    次のURLは「ファイルまたはフォルダーを作成する」というタイトルです。
    https://msdn.microsoft.com/ja-jp/library/as2f1fez.aspx

    Create the subfolder.というコメントのところでDirectoryを使用しています。
    コーディングの使用上はまだよいのですが、特に言葉にするときに少し困っています。
    どちらも同じような物なのですが、細かな言葉の使い分けがあるのか、MSDNなどに回答はあるでしょうか。

    簡単に検索をすると下記の参考のような回答が出てきました。
    ディレクトリーは純粋なディスク上のファイルの保存場所を指しており、フォルダは「マイネットワーク」など、通常テキストファイルなどを保存できない場所を含み、オブジェクトの入れ物という広い意味になる、という回答が挙がっていたのですが、引用元の資料がわかりませんでした。
    WikiではWindowsやMac OSではGUI化に伴い、フォルダの概念に含まれる、とされており、概念が指すところが上述するところか、または別のことなのかもしれません。

    厳密な定義がありそうに最初は思ったのですが、あまり気にする必要はない(曖昧さを含んだ?)同義語で、誰が正しいとか間違っているという話でもなくて(漢字のような)スタイルや文化の問題でしょうか。
    参考になるような指針など、なにかわかりましたら教えてください。よろしくお願いします。

    参考
    ウィンドウズの「フォルダ」と「ディレクトリ」という言葉の違い
    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q127753457

    Directory
    https://msdn.microsoft.com/ja-jp/library/system.io.directory.aspx


    • 編集済み ichiethel 2016年4月19日 1:19
    2016年4月19日 1:16

回答

  • 難しい話題ですが私の理解を説明します。

    Directoryはディスクなどの記憶装置の持つ階層構造のことです。Directoryに含まれる項目はご存知の通りFileとDirectory(サブディレクトリ)です。

    対してFolderは本来、記憶装置に結び付かない概念です。実はWindows OSですらなく、正確にはファイルエクスプローラーの概念です。当然ながらファイルエクスプローラーは記憶装置を表示しますので、DirectoryもFolderとして表示されます。その他、既に書かれていますが、ネットワークフォルダやコントロールパネルなど記憶装置と対応しないものもFolderとして扱われますし、WebDAVやftp、zipファイルの中身、ごみ箱など、記憶装置にある程度対応するFolderも存在しますし、デスクトップのように特殊な扱い(親Directoryを表示しない)を受けるものもあります。
    なお、Folder内に含まれる項目はFileとは限りませんのでItemと呼び、FolderとItemを含めてShell Namespaceと呼ばれます。

    厳密には上記のように分かれます。その上でどのように使い分けるべきか、ガイドラインが存在するかどうかについては私はわかりません。しかし例えば「開くダイアログ」などはファイルエクスプローラーで実現されますから、利用者視点に立ってGUIに於いてはDirectoryのことをFolderと表現するようです。(質問の例であれば、記憶装置に作成されるのはDirectoryですが、作成された結果がファイルエクスプローラー上に表示されるのはFolderなためです。)

    その上で、上記事情を把握せずなんとなくDirectory / Folderを使い分けていると思われるアプリケーションを散見します。

    • 回答としてマーク ichiethel 2016年4月19日 5:10
    2016年4月19日 2:42
  • ディレクトリーは純粋なディスク上のファイルの保存場所を指しており、フォルダは「マイネットワーク」など、通常テキストファイルなどを保存できない場所を含み、オブジェクトの入れ物という広い意味になる、という回答が挙がっていたのですが、引用元の資料がわかりませんでした。

    私もその理解でした。

    https://blogs.msdn.microsoft.com/oldnewthing/20110216-00/?p=11473/

    上記のページに 「仮想フォルダー = フォルダー - ディレクトリ」 という説明がありました。つまりフォルダーとは、ディレクトリと仮想フォルダー(実際のファイルシステムとは直接結びつかないフォルダー)を合わせたものと読み取ることができます。

    Windows では"ディレクトリ"に対してもより広い意味の"フォルダー"として表現されることが多いため、厳密に仮想フォルダーやディレクトリを区別する必要がないときは、単に"フォルダー"と表現した方がイメージがつかみやすいような気がします。


    • 編集済み kenjinoteMVP 2016年4月19日 2:16
    • 回答としてマーク ichiethel 2016年4月19日 5:10
    • 回答としてマークされていない ichiethel 2016年4月19日 5:14
    • 回答としてマーク ichiethel 2016年4月19日 5:15
    2016年4月19日 2:01

すべての返信

  • ディレクトリーは純粋なディスク上のファイルの保存場所を指しており、フォルダは「マイネットワーク」など、通常テキストファイルなどを保存できない場所を含み、オブジェクトの入れ物という広い意味になる、という回答が挙がっていたのですが、引用元の資料がわかりませんでした。

    私もその理解でした。

    https://blogs.msdn.microsoft.com/oldnewthing/20110216-00/?p=11473/

    上記のページに 「仮想フォルダー = フォルダー - ディレクトリ」 という説明がありました。つまりフォルダーとは、ディレクトリと仮想フォルダー(実際のファイルシステムとは直接結びつかないフォルダー)を合わせたものと読み取ることができます。

    Windows では"ディレクトリ"に対してもより広い意味の"フォルダー"として表現されることが多いため、厳密に仮想フォルダーやディレクトリを区別する必要がないときは、単に"フォルダー"と表現した方がイメージがつかみやすいような気がします。


    • 編集済み kenjinoteMVP 2016年4月19日 2:16
    • 回答としてマーク ichiethel 2016年4月19日 5:10
    • 回答としてマークされていない ichiethel 2016年4月19日 5:14
    • 回答としてマーク ichiethel 2016年4月19日 5:15
    2016年4月19日 2:01
  • 難しい話題ですが私の理解を説明します。

    Directoryはディスクなどの記憶装置の持つ階層構造のことです。Directoryに含まれる項目はご存知の通りFileとDirectory(サブディレクトリ)です。

    対してFolderは本来、記憶装置に結び付かない概念です。実はWindows OSですらなく、正確にはファイルエクスプローラーの概念です。当然ながらファイルエクスプローラーは記憶装置を表示しますので、DirectoryもFolderとして表示されます。その他、既に書かれていますが、ネットワークフォルダやコントロールパネルなど記憶装置と対応しないものもFolderとして扱われますし、WebDAVやftp、zipファイルの中身、ごみ箱など、記憶装置にある程度対応するFolderも存在しますし、デスクトップのように特殊な扱い(親Directoryを表示しない)を受けるものもあります。
    なお、Folder内に含まれる項目はFileとは限りませんのでItemと呼び、FolderとItemを含めてShell Namespaceと呼ばれます。

    厳密には上記のように分かれます。その上でどのように使い分けるべきか、ガイドラインが存在するかどうかについては私はわかりません。しかし例えば「開くダイアログ」などはファイルエクスプローラーで実現されますから、利用者視点に立ってGUIに於いてはDirectoryのことをFolderと表現するようです。(質問の例であれば、記憶装置に作成されるのはDirectoryですが、作成された結果がファイルエクスプローラー上に表示されるのはFolderなためです。)

    その上で、上記事情を把握せずなんとなくDirectory / Folderを使い分けていると思われるアプリケーションを散見します。

    • 回答としてマーク ichiethel 2016年4月19日 5:10
    2016年4月19日 2:42
  • kenjinoteさん、佐祐理さん回答ありがとうございました。

    仮想は考えが至っていませんでした。
    参考に挙げて頂いたブログの記事では仮想フォルダーが挙がっていますが、仮想フォルダーと仮想ディレクトリーの使い分けがあるのか、私はわかりませんでした。
    >つまりフォルダーとは、ディレクトリと仮想フォルダー(ここが仮想ディレクトリーではどう違うのか?)を合わせたもの
    なので、仮想ディレクトリーと仮想フォルダーの違いということなって疑問符が消えませんでした。

    ※日本語で仮想ディレクトリは検索すると仮想フォルダの半分ぐらいの件数がヒットしていました。ただし、英語にすると逆転していました。


    このところで、私は佐祐理さんの回答がスッキリと一般化した内容になっていると感じました。

    Directoryはディスクなどの記憶装置の持つ階層構造のこと。
    Folderは本来、記憶装置に結び付かない概念で、正確にはファイルエクスプローラーの概念のこと。
    だから、利用者視点(GUI:ファイルエクスプローラーなど)においては、DirectoryのことをFolderと表現することになる。

    >Folder内に含まれる項目はFileとは限りませんのでItemと呼び、FolderとItemを含めてShell Namespaceと呼ばれます。
    この部分は私はまったく理解がなかったので、調べてみたいと思います。

    とても参考になりました。
    歴史上の流れからくる事情は全容を把握することが難しそうですが、やはり、両者の違いを小さく気にする方もいますので、紛らわしくならないように使い分けは少し気をつけたいと思いました。
    ありがとうございました。


    2016年4月19日 5:10
  • 一応、Shell GlossaryにFolderの項もありますが冷たくあしらわれていてあまり役に立ちませんでした。Introduction to the Shell NamespaceはNamespace、Folder、Itemに関する説明がさらっとありますが、どちらかというとこれらを提供する側(仮想的なフォルダー機能を実装する)のドキュメントです。
    2016年4月19日 5:31
  • 補足ですが、歴史的な経緯について少しふれておきます。もともと、
    「フォルダー」という用語は Macintosh 用のOS(漢字Talk含む)で使用されて広まった、
    やや仮想的な意味の強い概念ですね。
    「ディレクトリ」はMS-DOSで使用されたディスク上のファイルの物理属性を基にする概念で、
    CP/MやOS/2でも使われている言葉です。コマンドラインのcd、mkdir等に名残がありますね。
    Windows上では95の頃からフォルダという言葉が使用され始めたと記憶しています。
    2.x(386)~3.x、NT4.xあたりまでは使用されていなかったと記憶しています。
    Mac OS上では現在に至るまでディレクトリという言葉はほぼ使われません。

    訂正 (1)CP/Mには階層化ディレクトリという概念はありません。
           (2) NT4.xではファイルエクスプローラ等ですでにフォルダという言葉が使用されていたようです。
    2016年4月19日 7:53
  • ichiethel さま よろしく。

    私も混乱しているひとりです。
    仲澤@失業者 さまのご回答にもある様に、嘗ては、Windows に Folder と言う言葉はありませんでした。
    恐らく、Windows NT 4 ? 系以降にユーザーインターフェースでより実務に近い言葉として、フォルダーが導入され、
    Directory と Folder が混乱しているのだと思います。
    利用する側の立場に立って、ディレクトリを、より分かり易い言葉に置き換えた、のではなかったでしょうか。

    個人的には同じものと言う感覚です。
    ファイルシステムのお話では フォルダ と言う言葉は少なく、
    OS 絡みになると、執筆者の好みで、双方が同義で使われる、と言う印象を持っています。

    個人的には、フォルダ は ディレクトリ の別の呼び方で、その明確な区別はないのかな とも。

    (更に、経験上、 パソコンに詳しくない方とお話しする時は フォルダ を、専門的なお話には 使い慣れた ディレクトリ を、 と使い分けているかな。)
    • 編集済み ShiroYuki_Mot 2016年4月19日 9:17 更に を追記
    2016年4月19日 9:12
  • 階層化Directoryの導入はMS-DOS 2.0ですから、CP/Mではほとんど出現していなかったのでは? とはいえDIRコマンドは存在していたようで。

    Windowsに於いてFolderが登場したのはWindows 95 / NT 4.0のInternet Explorerのシェル統合付近、プログラムマネージャ・ファイルマネージャがエクスプローラーに置き換えられた時点でしょう。「マイ ドキュメント フォルダ」、「共有フォルダ」など用語としては順次使われるようになっていたはずです。

    2016年4月19日 21:46
  • おっしゃる通りCP/Mには階層化ディレクトリという概念はありませんね。
    CP/M上でのディレクトリとはディスク上のファイルの配置情報を格納した部分の名称でしかありませんでしたね。
    すみません忘れてました。

    2016年4月20日 1:45