我有一个简单的问题。
当我们创建一个文件时,让我们说“abc.txt”并将其留空 操作系统将显示该文件大小为0字节,并在磁盘上占用0个字节。
如果我们将这些0字节文件中的100个保存到文件夹中,操作系统也会说该文件夹的总大小为0字节。
这可能听起来合乎逻辑,因为文件中没有任何内容。但是这些文件不应该至少占用存储设备中的几个字节吗?
毕竟,我们将它保存在某个地方并将其命名为某种东西。不应该文件的名称和可能的其他标题至少占用一些空间吗?
答案 0 :(得分:5)
不,它们仍占用文件系统上的几个字节。否则,我会实现一个整洁的文件系统,它以空文件的文件名存储所有内容。
对我而言,它实际上归结为定义问题。 “文件大小”指的是文件内容的大小,或者它指的是它在空闲字节方面的“差异”底层文件系统(即内容大小(向上舍入到最接近的块大小或簇大小)+用于它的字节inode )。
答案 1 :(得分:2)
这些细节传统上存储在所谓的File Allocation Table
(在Windows FAT上下文中)。它们是在我们格式化硬盘驱动器时创建的。为其分配了一些预定义的空间。我不认为它的大小会发生变化。
例如,您格式化100 GB硬盘驱动器,只有90 GB以上可供您使用。文件系统使用其他空间来管理/记住保存在硬盘驱动器上的每个文件/文件夹及其保存位置。
答案 2 :(得分:2)
它们存在于磁盘上的事实意味着已经为它们创建了一条记录,这当然需要一些内存。 0字节只对应于文件的逻辑大小四舍五入到UI中显示的粒度,但即使这样,它也可能包含一个文件头,它取决于文件格式。
答案 3 :(得分:2)