1. 首页 > 数码

硬盘上文件加起来总大小为啥大于磁盘占用空间? 硬盘没有文件空间却被占用

硬盘上文件加起来总大小为啥大于磁盘占用空间?硬盘没有文件空间却被占用

有人能解释一下电脑里的硬盘文件的大小和占用空间为什么不一样吗?

在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化。 文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容和格式不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是“簇(Cluster)”。 文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。 为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。 实际上字节并不是保存文件的最小单元。操作系统将硬盘划分为若干个簇,然后以簇作为最小单位保存文件。每个簇的大小因为操作系统和分区大小而不同。例如Win9x/FAT16分区,如果分区小于512M,每个簇为8K;大于512M,每个簇为16K。如果一个文件为1K,那么在小于512M的分区,它占用8K;在大于512M的分区,它占用16K。大于一个文件,文件大小和占用空间之间的差距很小。但对于一个目录中的多个文件,这种差别可能非常大。所以你要是计算占用空间,先调GetDiskFreeSpace获得磁盘的簇的大小。 然后利用文件大小除以簇的大小并将小数进位得到占用的簇数,然后再乘以簇的大小就可以获得获得文件占用的空间. 大小和占用空间不一样是很正常的,硬盘分区的最小是以4k为计算单位的。就是说好像一个一个格子一样,这些格子比较大。即使是一个文件写了一个字,它的大小不足1k,但是显示占用空间为4k。所以特别是一些小文件很多的东西。大小加起来不大,可是占用空间往往比较悬殊。

为什么我把C盘中所有文件加起来后比所占空间小得多

因为C盘中有大量的隐藏文件夹以及隐藏文件,所谓的C盘中所有文件其实不包括这些隐藏文件,因此加起来比C盘所占空间小很多。

  解决方法:

1. 双击打开C盘;

2. 单击菜单栏的“工具”选项,单击“文件夹选项”;

3. 单击“查看”标签,将“隐藏受保护的操作系统文件(推荐)”前面的勾去掉,并且勾选“显示隐藏的文件、文件夹和驱动器”,单击“确认”;

4. 这时C盘中所有文件加在一起就等于所占空间了。

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

1、这是由于文件系统是采用簇作为文件存储的基本单位,每一个簇只能被1个文件占用;

  2、簇的大小是硬盘分区在高级格式化时决定的,例如目前固态硬盘要求采用4k的簇大小;

  3、举例说明:下图文件大小只有6个字节,当仍然需要占用1个簇的空间,下图也说明该分区采用了4KB的簇的大小。

为什么磁盘显示所占空间大小比实际文件大小大很多很多,如图:

数据在文件系统层面是以块为单位保存的,举个例子,你的文件实际大小为9MB,文件系统数据块为4MB,那么该文件共需要占用3个块(4M+4M+1M占3个4M大小的数据块)。所以,尽管文件只有9MB,但实际占用的空间为12MB。