实际文件大小是多少?

Rob*_*cks 6 filesystems windows-xp

在 Windows XP 下File Properties,实际文件大小是多少?大小或磁盘大小?

我正在寻找文件的确切大小,以字节为单位。为什么 Windows 指责使用磁盘上的额外空间,而不是调用它Size Windows takes to store this file

小智 18

大小是文件中的实际字节数。

磁盘大小是文件在磁盘上占用的字节数。这通常是一个较大的数字,因为磁盘空间只能以块为单位分配,因此在文件末尾磁盘上会保留额外的 slack 空间来填充最后一个块。但是这个空闲空间实际上并不是文件的一部分。


Jer*_*emy 17

我不相信这是 Windows 特定的问题。由于磁盘是按块分配的,如果文件大小不是磁盘块大小的精确倍数,则文件可能会占用比实际大小更多的磁盘空间。

考虑:

File         |------3.4k------|   |-------------4.1k--------| 
Disk Blocks  |--------4k----------|--------4k----------|--------4k----------|
Run Code Online (Sandbox Code Playgroud)

磁盘上的文件必须与分配的块对齐(它们必须从块开始的地方开始),例如,如果文件实际大小为 3.4k,而磁盘块大小为 4k,则磁盘上的文件大小将为 4k,因为即使文件中只有 3.4k 的数据,它实际上占用了磁盘上的 4k,因为您不能将该块的其余部分用于任何事情。


Rod*_*ddy 10

在抨击 Windows 浪费磁盘空间之前,您应该了解一下几乎所有文件系统如何管理硬盘上的空间。

HDD 上“最小”的可寻址空间块是一个扇区(通常为 512 字节),您无法读取或写入小于该扇区的空间。如果要在一个扇区中写入一个字节,则必须读取该扇区,修改该字节,然后将该扇区写回。这就是物理学/电子学的工作原理。“块”通常是一个或多个扇区,代表文件系统将为文件分配的最小空间块。旧的 DOS“基于 FAT”的文件系统随着磁盘大小的增加而增加了块大小。

出于多种原因,文件系统不希望多个文件共享同一个扇区。想象一下,如果您想让文件更长一点 - 在分配额外的扇区以使文件更大之前,可以使用扇区末尾的“浪费空间”。

而且,虽然理论上可能有一个文件系统可以按每个字节(甚至每个位)分配磁盘文件,但磁盘上用于跟踪这一点的内务存储量会激增,并且可能超过您可能获得的任何优势获得了。而且性能很可能会很差......


小智 6

当以较大的单位(1KB = 1,024B 等)显示时,Windows 始终正确计算文件大小。

大小是实际文件大小,而磁盘大小是硬盘驱动器上的实际大小。由于硬盘驱动器被分成多个块,因此您必须完全消耗一个块。我想有一个能装 4L 的水桶,而你有 5L 的水,你需要两个水桶来装水。


小智 5

尺寸。磁盘大小是将文件存储在驱动器上所需的块数 * 块大小。