为什么在属性里,文件的大小和占用空间不一样呢?
答案:2 悬赏:0 手机版
解决时间 2021-04-12 02:13
- 提问者网友:临风不自傲
- 2021-04-11 19:47
为什么在属性里,文件的大小和占用空间不一样呢?总是占用空间要大一些。
最佳答案
- 五星知识达人网友:雾月
- 2021-04-11 20:57
要了解这个问题,就要了解一下硬盘的原理和簇这个概念
比如一个簇的大小为4k,而你的文件大小只有1k
这样虽然你的文件是1k,但是占用的空间最小也是4k
文件最多或是越零零碎碎,占用的空间也就越大.
比如一个簇的大小为4k,而你的文件大小只有1k
这样虽然你的文件是1k,但是占用的空间最小也是4k
文件最多或是越零零碎碎,占用的空间也就越大.
全部回答
- 1楼网友:拾荒鲤
- 2021-04-11 21:07
1.“文件大小”与“所占空间”的差别
为了便于大家理解,我们先来看两个例子:
例1:找到d盘上的ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,即可打开对话框,我们可以看到,ersave2.dat的实际大小为655,628byte(字节),但它所占用的空间却为688,128byte,两者整整相差了32kb。
例2:同样是该文件,如果将它复制到a盘,你会发现该文件实际大小和所占空间基本一致,同为640kb,但字节数稍有差别。再将它复制到c盘,查看其属性后,你会惊奇地发现它的大小和所占空间的差别又不相同了!
显然,在这三种情况中,文件的实际大小没有变化,但在不同的磁盘上它所占的空间却都有变化。事实上,只要我们理解了文件在磁盘上的存储机制后,就不难理解上述的三种情况了。文件的大小其实就是文件内容实际具有的字节数,它以byte为衡量单位,只要文件内容和格式不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以byte为衡量单位的,它最小的计量单位是“簇(cluster)”。
小知识:什么是簇?
文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(fat16/32/ntfs)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。
为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。
2.分区格式与簇大小
在例2中,同一个文件在不同磁盘分区上所占的空间不一样大小,这是由于不同磁盘簇的大小不一样导致的。簇的大小主要由磁盘的分区格式和容量大小来决定,其对应关系如表1所示。
笔者的软盘采用fat分区,容量1.44mb,簇大小为512byte(一个扇区);c盘采用fat32分区,容量为4.87gb,簇大小为8kb;d盘采用fat32分区,容量为32.3gb,簇大小为32kb。计算文件所占空间时,可以用如下公式:
簇数=取整(文件大小/簇大小)+1
所占空间=簇数×磁盘簇大小
公式中文件大小和簇大小应以byte为单位,否则可能会产生误差。如果要以kb为单位,将字节数除以1024即可。利用上述的计算公式,可以计算ersave2.dat文件的实际占用空间。
3.轻松查看簇大小
①用chkdsk查看簇大小
在windows操作系统中,我们可以使用chkdsk命令查看硬盘分区的簇大小。例如我们要在windowsxp下查看c盘的簇大小,可以单击“开始→运行”,键入“cmd”后回车,再键入“c:”后回车,然后输入“chkdsk”后回车,稍候片刻从它的分析结果中,我们就可以得到c盘的簇大小,不过它把簇称之为“分配单元”或者“allocationunit”。
②用pqmagic等磁盘工具来检测
很多磁盘工具都具备磁盘信息显示等功能。例如在pqmagic中,选择要查看的磁盘分区,然后单击右键选择“高级→调整簇大小”功能,即可从显示的对话框中可以看到该磁盘当前设置的簇大小。
③手工查看
手动创建一个100字节以下的文本文档。然后将该文件复制到欲查看簇大小的磁盘分区中,在windows下显示该文件的属性,其中“所占空间”处显示的数值就是簇大小.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯