在 Windows XP 下File Properties
,实际文件大小是多少?大小还是磁盘占用大小?
我正在寻找精确的文件的大小(以字节为单位)。为什么 Windows 会将其归咎于磁盘上额外空间的使用,而不是调用它Size Windows takes to store this file
?
答案1
我不认为这是 Windows 特有的问题。由于磁盘是按块分配的,如果文件大小不是磁盘块大小的精确倍数,则文件可能会占用比其实际大小更多的磁盘空间。
考虑:
File |------3.4k------| |-------------4.1k--------|
Disk Blocks |--------4k----------|--------4k----------|--------4k----------|
磁盘上的文件必须与分配的块对齐(它们必须从块的开始位置开始),例如,如果文件的实际大小为 3.4k,而磁盘块大小为 4k,则磁盘上的文件大小将为 4k,因为即使文件中只有 3.4k 的数据,但它实际上占用了磁盘上的 4k,因为您不能将该块的剩余部分用于任何事情。
答案2
大小是文件中的实际字节数。
磁盘占用大小是文件在磁盘上占用的字节数。这个数字通常比较大,因为磁盘空间只能按块分配,所以文件末尾会保留额外的磁盘空间来填充最后一个块。但这个磁盘空间实际上并不是文件的一部分。
答案3
在指责 Windows 浪费磁盘空间之前,您应该了解一下几乎所有文件系统如何管理硬盘空间。
硬盘上“最小”的可寻址空间块是一个扇区(通常为 512 字节),您无法读取或写入小于该大小的空间。如果您想在扇区中写入一个字节,则必须读取该扇区,修改该字节,然后写回扇区。这就是物理/电子学的工作原理。“块”通常是一个或多个扇区,表示文件系统将为文件分配的最小空间块。旧的 DOS“基于 FAT”的文件系统会随着磁盘大小的增加而增加块大小。
出于多种原因,文件系统不希望多个文件共享同一个扇区。想象一下,如果你想让一个文件稍微长一点 - 在分配其他扇区来增大文件大小之前,扇区末尾的“浪费空间”可以被利用。
而且,虽然理论上可以有一个文件系统,可以按字节(甚至按位)分配磁盘文件,但用于跟踪此操作的磁盘管理存储量将激增,并且可能超过您可能获得的任何优势。而且性能可能会非常差...
答案4
大小。磁盘上的大小是将文件存储在驱动器上所需的块数 * 块大小。