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

问题描述 投票:0回答:4

我有一个简单的问题。

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

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

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

毕竟,我们把它保存在某个地方并给它起了个名字。文件名和可能的其他一些标题至少不应该占用一些空间吗?

language-agnostic filesystems
4个回答
10
投票

不,它们仍然在文件系统上占用几个字节。否则我会实现一个神奇的文件系统,将文件名中编码的所有内容存储在空文件中。


从技术上讲,它归结为定义问题。 “文件大小”指的是文件内容的大小,或者它指的是它在底层文件系统上的可用字节数方面的“差异”(即,文件的大小内容(四舍五入到最接近的块或簇大小)+ 用于它的字节inode)。


3
投票

传统上,这些详细信息存储在所谓的

File Allocation Table
(在Windows FAT上下文中交谈)中。它们是在我们格式化硬盘时创建的。为它分配了一些预定义的空间。我认为它的大小不会改变。

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


3
投票

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

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

在这里您可以阅读 Windows 文件系统的一些常见簇大小。


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.