目录和文件夹之间有什么区别?

时间:2011-02-22 13:21:03

标签: shell filesystems terminology directory

大多数人互换使用术语“文件夹”和“目录”。从程序员的角度来看,是否存在差异,如果是,那又是什么?它取决于操作系统,还是存在广泛的普遍共识? This至少表明存在差异。

7 个答案:

答案 0 :(得分:66)

点击Wikipedia

上的“文件夹隐喻”部分

它声明:

“严格地说,作为文件系统概念的目录与用于表示它的图形用户界面隐喻(文件夹)之间存在差异。例如,Microsoft Windows使用特殊文件夹的概念来帮助以相当一致的方式向用户呈现计算机的内容,使用户不必处理绝对目录路径,这些路径可能因Windows版本之间以及各个安装之间而异。

如果指的是文档容器,则术语文件夹更合适。术语目录指的是文档文件和文件夹的结构化列表存储在计算机上的方式。它类似于包含姓名,号码和地址列表的电话簿,并且不包含实际文件本身。“

答案 1 :(得分:28)

文件夹不一定是磁盘上的物理目录。例如,它可以是Windows中的打印机文件夹或控制面板文件夹。

Raymond Chen explains:

  

Windows 95引入了Windows资源管理器   以及术语文件夹。   之间有什么关系   文件夹和目录?

     有些人认为Windows 95   将目录重命名为文件夹,但是   它实际上不止于此。

     

Windows资源管理器允许您查看   文件夹,它们是容器   shell命名空间。目录是一个   文件夹的类型,即文件夹   对应于文件系统位置。   还有其他类型的文件夹,例如   作为控制面板或网络   邻居或打印机。这些其他   文件夹类型表示对象   没有的shell命名空间   对应于文件。在通用中,   术语虚拟文件夹已经   应用于引用文件夹   不是目录。换句话说,我们   有这个欧拉图:

     

(虚拟文件夹=文件夹 -   目录)

     

一般来说,代码操纵着   shell命名空间应该运行   文件夹和项目,而不是目录和   文件,以免束缚自己   特定的存储介质。对于   例如,限制自己的代码   文件将无法导航到   Zip文件,因为Zip的内容   文件以a的形式公开   虚拟文件夹。

答案 2 :(得分:11)

Quoting Álvaro G. Vicario

大多数时候,它们是可互换的术语。目录是从文件系统早期开始使用的经典术语,而文件夹是一种友好的名称,对于Windows用户来说可能听起来更熟悉。

主要区别在于文件夹是一个逻辑概念,不一定映射到物理目录。目录是文件系统对象。文件夹是GUI对象。 Wikipedia explains it this way

  

名称文件夹,提供类比   到办公室使用的文件夹,   最初由Apple Lisa使用,是   几乎用于所有现代操作   系统的桌面环境。文件夹   通常用图标描绘   视觉上类似于物理文件   文件夹。

     

严格来说,有一个   一个目录之间的区别   是一个文件系统的概念,而且   图形用户界面隐喻   用于表示它(文件夹)。   例如,Microsoft Windows使用   特殊文件夹的概念有所帮助   介绍计算机的内容   以相当一致的方式向用户提供   这使用户免于必须   处理绝对目录路径,   这可能因版本而异   Windows,以及个人之间   安装。

     

如果指的是一个容器   文件,术语文件夹更多   适当。术语目录指   以结构化的列表的方式   存储文档文件和文件夹   在计算机上的。它可以与a相媲美   包含的电话簿   名单,数字和地址列表   并且不包含实际的   文件本身。

答案 3 :(得分:7)

  • 目录是文件系统概念。在GUI中,目录表示为文件夹
  • 示例1: Unix系统,/usr/bin/在命令行控制台中查看时通常称为目录,但如果通过图形文件管理器,用户有时可称其为文件夹。
  • 示例2 :Windows操作系统同时使用目录(在mkdircd等CUI中)和文件夹 (在GUI中)。

目录:名称目录,与电话目录类似。 enter image description here

文件夹:名称文件夹,与办公室中使用的文件夹类比

enter image description here

类比:

  • 文件夹就像一个房间。
  • 目录就像一个了解所有房间的酒店管理员。

你想要一个特定的文件夹,你使用目录。你想要一个特定的房间,你问酒店管理员。 Source

答案 4 :(得分:2)

以前,我不知道这两个单词在英语中的区别,即使在Windows注册表编辑器中,我也可以在Folder下找到两个子键DirectoryHKEY_CLASSES_ROOT

直到我在注册表中手动创建一些值并观察到上下文菜单项之间的差异,我才知道差异。如果仅在HKEY_CLASSES_ROOT\Folder\shell下创建一个节点,则会发现该节点同时出现在两个虚拟文件夹(也称为system directory)(例如Recycle Bin)和文件系统目录(例如, C:\Windows

如果仅在HKEY_CLASSES_ROOT\Directory\shell下创建一个节点,则该节点仅出现在文件系统目录的上下文菜单中,例如C:\Windows,而不出现在虚拟文件夹中。因此,就像@AntonyW所说的那样,在Windows中,文件夹=虚拟文件夹+文件系统目录。

答案 5 :(得分:0)

您的链接基本上描述了技术方面的不同之处。大多数时候人们交替使用它们,他们选择的主要是基于它们来自何种环境。

除非您正在为将要修改文件的应用程序进行跨平台开发,否则您不需要知道这些差异。一旦准备使用几种不同的文件系统类型,就应该知道它们的不同之处。

不要指望人们知道何时使用哪个术语。我认为这些术语是可互换的,因为人们知道这些差异太少了。

答案 6 :(得分:0)

文件资源管理器(以前称为Windows资源管理器)中显示的文件夹名称不一定与它们所代表的目录相同。考虑一种情况,您尝试以编程方式打开特定文件夹,大容量存储上的普通目录,而不是虚拟商店。假设这是由用户根据文件资源管理器中显示的名称指定的。此名称可能已被目录上的备用数据流(ADS)中的信息覆盖,并且您的程序将不会通过其真实路径名引用该文件。

在我遇到的两个示例中,我的应用无法打开用户指定的路径名​​。其中一个例子与OneDrive有关;我不记得另一个例子的完整情况。无论如何,显示名称存储在名为 ms-properties:$ DATA 的ADS中。

您可以使用CMD.EXE使用DIR / R列出ADS。使用“文件资源管理器”中的“属性”菜单项重命名此类文件夹会更改此ADS的内容,并且在文件资源管理器中显示给最终用户的名称是他或她键入的内容。但是此过程不会重命名目录。