当我们查看任何文件管理软件(如Windows资源管理器)中文件的大小时,我们会看到两种不同的大小,一种只读取大小,另一种读取大小磁盘
为什么这两个不同?
磁盘上的大小是否包含一些开销,例如文件分配表(FAT)中的条目?你能详细说明一下吗?
当我们以编程方式查询文件大小时,它总是返回与磁盘大小无关的大小。它从哪里得到这个数字?操作系统是否必须读取整个文件的内容以确定此大小或只查找文件分配表?
答案 0 :(得分:3)
在超级用户上找到this。 他说的是什么:
我们知道磁盘由磁道和扇区组成。在Windows中,这意味着操作系统为“集群”或“分配单元”中的文件分配空间。
群集的大小可以变化,但典型的范围是512字节到32K或更多。例如,在我的C:\驱动器上,分配单元为4096字节。这意味着Windows将为文件或文件的一部分分配4096个字节,长度为1到4096个字节。
如果我有一个17KB(千字节)的文件,那么磁盘上的大小将是20.48 KB(或20480字节)。计算将是4096(1个分配单元)x 5 = 20480个字节。它需要5个分配单元才能容纳17KB的文件。
另一个例子是如果我有一个2000字节大小的文件。磁盘上的文件大小为4096字节。原因是,因为即使整个文件可以放在一个分配单元内,它仍占用磁盘上4096个空间(一个分配单元)(只有一个文件可以使用分配单元,不能与其他文件共享)。 / p>
因此磁盘上的大小是保存文件的所有扇区的空间。这意味着,通常,磁盘上的大小总是大于实际大小。
因此,在查看属性窗口时,应始终从“大小”值中获取文件或文件夹的实际大小。