文件大小与所占空间的区别

原创 2007年10月07日 10:36:00
在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化。

一、“文件大小”与“所占空间”的差别
为了便于理解,先来看两个例子:
例1 找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,我们可以看到,Ersave2.dat的实际大小为655,628 Byte(字节),但它所占用的空间却为688,128 Byte,两者整整相差了32KB。
例2 同样是该文件,如果将它复制到A盘,你会发现该文件实际大小和所占空间基本一致,同为640KB,但字节数稍有差别。再将它复制到C盘,查看其属性后,你会惊奇地发现它的大小和所占空间的差别又不相同了!
显然,在这三种情况中,文件的实际大小没有变化,但在不同的磁盘上它所占的空间却都有变化。事实上,只要我们理解了文件在磁盘上的存储机制后,就不难理解上述的三种情况了。文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容和格式不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是“簇(Cluster)”。

小知识:什么是簇?
文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。
为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。
在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化

软盘采用FAT分区,容量1.44MB,簇大小为512 Byte(一个扇区);C盘采用FAT 32分区,容量为4.87GB,簇大小为8KB;D盘采用FAT 32分区,容量为32.3GB,簇大小为32KB。计算文件所占空间时,可以用如下公式:
簇数=取整(文件大小/簇大小)+1
所占空间=簇数×磁盘簇大小
公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。如果要以KB为单位,将字节数除以1024即可。利用上述的计算公式,可以计算ersave2.dat文件的实际占用空间
在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化。 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

“文件大小”与“所占空间”的差别

1.“文件大小”与“所占空间”的差别 为了便于大家理解,我们先来看两个例子: 例1:找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,即可打开对话框,我们可以看到,Ers...

文件大小和占用空间的区别

文件大小和占用空间的区别(为什么文件大小和占用空间不一样大) 1.“文件大小”与“所占空间”的差别 为了便于大家理解,我们先来看两个例子: 例1:找到D盘上的Ersave2.dat文...

windows系统中文件大小和占用空间不同的原因解析

Windows系统中文件大小和占用空间不同的原因解析 1.“文件大小”与“所占空间”的差别      为了便于大家理解,我们先来看两个例子: 例1:找到D盘上的Ersave2.dat文件,用鼠标...

文件大小为什么和占用空间不一样?

文件大小为什么和占用空间不一样? 原文来自:http://www.cnblogs.com/crazycxy/archive/2011/07/12/2104013.html 文件大小和占用空...

文件大小为什么和占用空间不一样?

一个文件,无论存储在硬盘空间还是其它移动存储空间,文件本身的大小,要比所占用的空间要小;   比如说,一个12K的Txt文件,所占用的空间大于12K,这是为什么呢?   此外,还存在这样的...

一个类的实例化对象所占空间的大小?

一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的...

获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等

+(uint64_t)getFreeDiskspace {     uint64_t totalSpace = 0.0f;     uint64_t totalFreeSpace = 0.0f; ...

文件大小与占用空间大小(附带字节转KB,MB公式)

很多人一直在困惑,一个文件或文件夹属性中的“大小(Size)”和“占用空间(Size on disk)”通常不相互匹配。“大小”的值表示文件实际大小的字节数,而“占用空间”的值表文件占用硬盘空间大小的...

linux 小技巧查看硬盘空间 文件大小----- du df使用和比较

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命...

Linux中查看磁盘空间和文件大小的方法

(1)查看文件大小  查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   # du -h 15M     ./package ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)