什么使文件成为文件夹?

时间:2013-03-21 05:29:40

标签: java file filesystems directory

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

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

在创建一个或另一个失败案例时,我是否应该想到一些特别的东西(除了使用不同的方法创建一个或另一个)?

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

如果实际上对于失败案例没有区别,我想抽象出一个自定义FileSystemObject并对它们进行相同处理。

1 个答案:

答案 0 :(得分:3)

好问题。

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

所以你可能有一些文件夹包含以下内容:

  a
  b
d c
d d

ab是文件。 cd是文件夹。 ab只能包含二进制数据。但cd可以包含其他文件/文件夹。

例如c可能如下所示:

  afile
  anotherfile
d morestuff
d stuff

这允许您根据需要制作层次结构,无论您想要什么样的结构。这是recursive数据结构的一个非常基本的例子。选择是制作文件还是文件夹很有用,因为文件和文件夹是不同类型的东西。文件系统可能有文件也是文件夹,但我从未见过像这样的文件系统。例如,在Windows / Linux中,如果您创建文件,则不能将其用作文件夹,只能更改文件的内容(这只是任意二进制数据)。