『轉』windows文件的占用空间与文件大小

轉自: http://hi.baidu.com/344847199/blog/item/e429d7c47142eec339db4983.html

windows操作系统对磁盘采用分页管理方式,最小分页大小为4kb,也就是如果你的硬盘假设有100GB,那么,你的分页的个数是:(100×1000×1000)/4 个,
當然了,你放入一个字符,只有1个字节的,但是他要分配到一个空间,而这个空间利用一个页大小就可以装得下,那么由于最小分页大小就是4kb,所以提示占用空间为4kb,实际大小占用一个字节
查看你硬盘上的一个任意非空目录或者非空文件的属性,看到大小有2个数值:一个叫大小,也就是文件的大小;另外一个叫占用空间,就是占用的硬盘空间。 
占用空间肯定大于等于文件大小,因为硬盘的最小单位是簇,任何文件再小也不会小于一簇,默认磁盘一簇一般是4KB。

可以把硬盘看成一个码头
码头有几个仓库,仓库里有很多箱子用来装文件
码头:相当于整块硬盘
仓库:相当于硬盘的分区(C: D: E:),严格来讲应该叫逻辑分区,因为还有扩展分区
箱子:相当于cluster(簇,最小存储单元)
文件:相当于.txt .rar *.*等
不同的文件存储方法(FAT16, FAT32, NTFS)决定箱子的大小:
一般来讲,文件存储方法要求:
◎小仓库用小箱子装文件
◎大仓库用大箱子装文件
◎一个文件可以装到不同的箱子里
◎两个文件不能装在同一个箱子里
为什么两个文件不能放到同一个箱子?
个人理解是如果装到同一个箱子,不好找(寻址)文件。
关于sector(分区), track(磁道)等这些都是用来实现箱子的,不用去深究了
比如FAT32:
8GB以下的仓库(分区),箱子的大小为4kB
8GB~16GB的仓库,箱子的大小为8kB
16GB~32GB的仓库,箱子的大小为16kB
32GB以上的仓库,箱子的大小为32kB
如果是8GB以下的分区:
比如楼主的文件大小只有1个字节,但是要独占一个箱子,
因此就要占4kB。
也有可能有人会问,我的分区是40GB
怎么1字节的文件也占4kB,为什么不是32kB
这是因为你很聪明,你可能使用的是NTFS文件存储方法。
NTFS规定:
1GB以下的仓库(分区),箱子的大小为2kB
1GB以上的仓库,箱子的大小都为4kB
2TB (2 x 1024GB)以上这个我也不知道箱子的大小
再举一个例子:
比如硬盘分区(NTFS)1GB以上:
如果文件的大小为5kB
文件要两个箱子才能装的下,所以要占8kB
查看文件属性,你会看到:
文件大小是5kB
而占用空间(占几个箱子的容量)是8kB
还有人会问:
那么用磁盘整理(defrag)能增加硬盘的可用空间么?
答案是不会的。
因为磁盘整理的原因是箱子东放一个,西放一个
这样查找文件就慢了,磁盘整理只是把箱子聚在一起
方便查找,提高磁盘访问速度
那么怎么增加磁盘可用空间呢?

有一个方法就是压缩文件。以前win98好像有压缩磁盘空间的工具。 

原文地址:https://www.cnblogs.com/abinxm/p/1661734.html