0字节文件真的是0字节吗?

时间:2011-02-10 08:50:07

标签: language-agnostic filesystems

我有一个简单的问题。

当我们创建一个文件时,让我们说“abc.txt”并将其留空 操作系统将显示该文件大小为0字节,并在磁盘上占用0个字节。

如果我们将这些0字节文件中的100个保存到文件夹中,操作系统也会说该文件夹的总大小为0字节。

这可能听起来合乎逻辑,因为文件中没有任何内容。但是这些文件不应该至少占用存储设备中的几个字节吗?

毕竟,我们将它保存在某个地方并将其命名为某种东西。不应该文件的名称和可能的其他标题至少占用一些空间吗?

4 个答案:

答案 0 :(得分:5)

不,它们仍占用文件系统上的几个字节。否则,我会实现一个整洁的文件系统,它以空文件的文件名存储所有内容。


对我而言,它实际上归结为定义问题。 “文件大小”指的是文件内容的大小,或者它指的是它在空闲字节方面的“差异”底层文件系统(即内容大小(向上舍入到最接近的块大小或簇大小)+用于它的字节inode )。

答案 1 :(得分:2)

这些细节传统上存储在所谓的File Allocation Table(在Windows FAT上下文中)。它们是在我们格式化硬盘驱动器时创建的。为其分配了一些预定义的空间。我不认为它的大小会发生变化。

例如,您格式化100 GB硬盘驱动器,只有90 GB以上可供您使用。文件系统使用其他空间来管理/记住保存在硬盘驱动器上的每个文件/文件夹及其保存位置。

答案 2 :(得分:2)

它们存在于磁盘上的事实意味着已经为它们创建了一条记录,这当然需要一些内存。 0字节只对应于文件的逻辑大小四舍五入到UI中显示的粒度,但即使这样,它也可能包含一个文件头,它取决于文件格式。

答案 3 :(得分:2)

这个问题的答案取决于文件系统。

例如,在NTFS上,空文件占用一个群集,群集的大小取决于您的硬盘大小。

Here您可以阅读Windows文件系统的一些常见群集大小。