什么是文件大小

什么是文件大小,第1张

1、多数情况下我们在电脑上实际使用的数据单位是以字节为单位而不是位。内存/磁盘都是如此,你要保存或读一个位,就要把它放到最小一个字节的空间里去,虽然有点浪费,但是很规范便于内存管理和定位。

而磁盘实际读写的单元,按分区时定义不同,是“簇”,即连续的一段字节。一般大小定义为512B~64KB的2^n值,比如NTFS分区默认的簇大小是4KB。你在cmd下执行chkdsk命令,结束时倒数第三行可以看到:每个分配单元中有 4096 字节。

文件大小可以是任意整数字节,但文件保存在磁盘时的实际占用空间只能是簇大小*N。道理和内存里必须用至少1字节来保存1位一样,9位数据必须占用2字节内存,4097字节大小的文件也必须占用8192字节磁盘空间,多的一个簇保存多出来的那一位。

所以文件属性有两个大小,一个是实际文件大小, 一个是占用的大小。一个文件占用的大小最大比实际大小多一个簇大小。这个浪费在开发软件之类有很多文件的时候会很明显,比如十万以上的文件,比如matlab目录有115K个文件,大小3.86G,占用空间4.16G。

2、不存在下载两次或者保存到两个位置实际文件大小就不一样的情况,除非原始文件被改了或者下载软件有安全问题。但是如果保存的两个分区,由于格式不同或分区时定义不同选择了不同的簇大小,显示的占用空间会不同。比如100K个4.?KB文件如果放在4KB分区,会占800M空间。而放到64KB簇大小的分区里,会有惊人的浪费,因为要占6400M空间。。。。

KB、MB、GB都是文件大小的单位,KB最小,MB其次,GB最大。

1GB=1024MB

1MB=1024KB

例如1首歌的大小一般是2-5MB,一个word

文档的大小是多少KB.而一个电影是200-400MB,一个连续剧就要几个GB了。

现在MP3的容量一般是128MB,256MB等,一般硬盘的大小有40GB,80GB,120GB等。也就是这些MP3或硬盘中所放的文件的累计大小不能大于它的容量!!

分类: 电脑/网络 >>电脑常识

问题描述:

我点击了一个文件的属性,看到文件大小:24KB,占用空间:8KB,为什么文件是24KB反而占用空间只有8KB呢?

解析:

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

为了便于大家理解,我们先来看两个例子:

例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个扇区。显然,簇是 *** 作系统所使用的逻辑概念,而非磁盘的物理特性。

为了更好地管理磁盘空间和更高效地从硬盘读取数据, *** 作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。

2.分区格式与簇大小

在例2中,同一个文件在不同磁盘分区上所占的空间不一样大小,这是由于不同磁盘簇的大小不一样导致的。簇的大小主要由磁盘的分区格式和容量大小来决定,其对应关系如表1所示。

笔者的软盘采用FAT分区,容量1.44MB,簇大小为512 Byte(一个扇区);C盘采用FAT 32分区,容量为4.87GB,簇大小为8KB;D盘采用FAT 32分区,容量为32.3GB,簇大小为32KB。计算文件所占空间时,可以用如下公式:

簇数=取整(文件大小/簇大小)+1

所占空间=簇数×磁盘簇大小

公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。如果要以KB为单位,将字节数除以1024即可。利用上述的计算公式,可以计算ersave2.dat文件的实际占用空间。

3.轻松查看簇大小

①用Cdsk查看簇大小

在Windows *** 作系统中,我们可以使用Cdsk命令查看硬盘分区的簇大小。例如我们要在Windows XP下查看C盘的簇大小,可以单击“开始→运行”,键入“CMD”后回车,再键入“C:”后回车,然后输入“Cdsk”后回车,稍候片刻从它的分析结果中,我们就可以得到C盘的簇大小,不过它把簇称之为“分配单元”或者“Allocation unit”。

②用PQ Magic等磁盘工具来检测

很多磁盘工具都具备磁盘信息显示等功能。例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择“高级→调整簇大小”功能,即可从显示的对话框中可以看到该磁盘当前设置的簇大小。

③手工查看

手动创建一个100字节以下的文本文档。然后将该文件复制到欲查看簇大小的磁盘分区中,在Windows下显示该文件的属性,其中“所占空间”处显示的数值就是簇大小.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12091214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存