0

文件和文件夹之间的(文件系统特定的)区别是什么?

为什么需要不同的方法java.nio.file.Files来创建一个或另一个?createDirectory(..)createFile(..)。两者都Path用作文件系统对象的句柄/标识符。

在创建一个或另一个失败案例时,我是否应该考虑一些特别的事情(除了使用不同的方法来创建一个或另一个)?

对于文件或文件夹的创建,如果已经存在同名的文件或文件夹,则属于失败情况。如果它将是一个 r/w 文件或文件夹,在文件夹情况下可写意味着可以在其中创建文件,而在文件情况下意味着向其写入字节 - 如何检查有区别吗?

如果实际上失败案例没有区别,我想抽象出一个习惯FileSystemObject并将它们一视同仁。

4

1 回答 1

3

好问题。

在最常见的操作系统(Windows、Linux 等)中,文件夹可以包含东西。那些东西是有名字的。每个事物都可以是文件或目录。

因此,您可能有一些包含以下内容的文件夹:

  a
  b
d c
d d

a并且b是文件。c并且d是文件夹。a并且b只能包含二进制数据。但是c并且d可以包含其他文件/文件夹。

例如c可能看起来像这样:

  afile
  anotherfile
d morestuff
d stuff

这使您可以根据需要创建尽可能深的层次结构,并根据需要进行结构化。这是递归数据结构的一个非常基本的例子。选择是创建文件还是文件夹很有用,因为文件和文件夹是不同类型的事物。文件系统可以包含同时也是文件夹的文件,但我从未见过这样的文件系统。例如,在 Windows/Linux 中,如果您创建文件,则不能将其用作文件夹,您只能更改文件的内容(这只是任意二进制数据)。

于 2013-03-21T05:49:08.040 回答