“文件大小”和“占用空间”的区别
前言:
今天再拷贝文件的时查看文件属性,发现有“文件大小”和“占用空间”两个内容,而且两者之间的差距很大,见下图:
上图可知文件大小是2.54GB,而占用空间是18.2GB,差了不到16个G。
Windows会使用NTFS和FAT的文件系统管理磁盘文件,这个大家都知道,而所有文件系统都是基于"簇"的大小,也就是分配单元的大小,说白了,就是分配用来保存文件的最小磁盘空间量。而常用的Windows XP NTFS下最大的默认簇大小为 4 千字节 (KB)。也就是说,每个文件都是按4K的空间划分保存的,即使这个文件只有100字节。举个生活中的例子吧,很多人一起吃饭,这个分配单元就相当于碗的大小,这个文件就好比碗里的饭,每个人的饭量不一样,有人吃的多,就需要两个碗来盛饭,但是有的人吃的少,但也是要占一个碗。了解这个概念以后,理解起来文件大小和占用空间的关系就简单多了。
1.什么是簇?
“簇”又称为“分配单元” ,文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。
为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。
2.分区格式与簇大小
计算文件所占空间时,可以用如下公式:
簇数=取整(文件大小/簇大小)+1 所占空间=簇数×磁盘簇大小
公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。如果要以KB为单位,将字节数除以1024即可。利用上述的计算公式,可以计算文件的实际占用空间。
3.轻松查看簇大小
② 还可以借助PQ Magic等磁盘工具来检测。目前很多磁盘工具都可以显示磁盘信息的详情。例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择【高级】,然后选择【调整簇的大小】,就可以从对话框中看到或者更改当前磁盘设置的簇大小。
③ 也可以自己手动创建一个100字节以下的文档,然后把文件复制到想要查看簇大小的磁盘分区中,打开文件属性,在所占空间一栏中显示的数值就是簇的大小。
总结:
简单的介绍了一下“文件大小”和“占用空间”的差别,所以当我们存储非常多的小文件的时候,其所占用的空间就越大,但很可能其实际的文件大小却很小,也就是这个道理。同理,一个文件越大,其占用的空间也就越小。
说简单一点,拿仓库做比方,我们有100个仓库,为了好管理和查找,我们可能会把各种不同的物品分别放入不同的仓库,但是这个物品很可能不能填满仓库,那么它仍然也是占用了仓库的所有空间的。那么可能有人问了,为什么不把这个仓库多放东西,好节约空间,但是这样的话很可能你找很久久没有办法找到你所要的东西,其性能就非常低了。同理。
“文件大小”和“占用空间”的区别相关推荐
- windows “文件大小”与“占用空间”、文件系统与文件拷贝
0. 文件大小与占用空间 "文件大小"和"占用空间"的差别 首先需要明确的是,"文件大小"代表着文件的真实大小(文件内容实际包含的全部字节数 ...
- 文件大小与占用空间大小不同的原因
1."文件大小"与"所占空间"的差别 为了便于大家理解,我们先来看两个例子: 例1:找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择" ...
- 图像分辨率、像素总数、文件大小之间的详细区别
一张3456*2048的图像指的是其总像素数为(3456*2048),其中长边有3456个像素,宽边有2048个像素.我们所说的手机1500万像素等概念就是源于这个乘积得出来的数值. 分辨率指的是每英 ...
- C#获取文件夹及文件的大小与占用空间的方法
本文详细介绍了利用C#实现根据路径,计算这个路径所占用的磁盘空间的方法 . 网上有很多资料都是获取文件夹/文件的大小的.对于占用空间的很少有完整的代码.这里介绍实现这一功能的完整代码,供大家参考一下. ...
- C#获取文件夹/文件的大小以及占用空间 转摘自:http://www.cnblogs.com/chenpeng-dota/articles/2176470.html...
C#获取文件夹/文件的大小以及占用空间 今天,头给了个任务:写个方法,我会给你个路径,计算这个路径所占用的磁盘空间 . 然后,找了很多资料.但大部分都是获取文件夹/文件的大小的.对于占用空间的没有成品 ...
- 文件大小 和 文件占用空间
创建一个文件 b.txt $ echo -n "b" > b.txt 查看文件大小 $ ls -lh b.txt -rw-rw-r-- 1 liyongjun liyongj ...
- 32位程序和64位程序这些区别你知道吗?
我们在编写C/C++程序时,32位程序和64位程序的代码有何区别?如何编写既可以编译成32位程序又可以编译成64位程序的代码? 代码上的区别 实际上,对于32位程序和64位程序来说,代码上的区别不大, ...
- 专升本第四讲(计算机的“灵魂”)
操作系统基本概念 1.概念 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何 ...
- Win10 中的文件链接
在 linux 系统里,通常可以用 ln 指令创建文件链接.而在windows中,其实也是有类似的指令,可以实现文件链接. 说明一下,我自己的电脑操作系统是win10,虽然理论上mklink能够在wi ...
- FPGA之道(12)FPGA芯片的配置方式
文章目录 前言 FPGA芯片的配置方法 主动配置模式 被动配置模式 JTAG配置模式 前言 Xilinx公司FPGA芯片的配置方法在调试阶段可以通过JTAG的方式将bit流文件烧写(编程)进FPGA芯 ...
最新文章
- 公司--》字符串截取
- Vista下的五笔输入法
- SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)...
- python测量不确定度_chaospy-不确定度量化的数值工具-Jonathan Feinberg Installation Example Usage...
- JSTL 与 JSP 代码段 相互调用变量
- 迁移.net framework 工程到.net core
- 嵌入式基础认识1:存储器(如RAM、ROM和FLASH)
- cortex m4 中文手册_江淮瑞风M4柴油版上市 售13.88-15.48万
- 黑马博客——详细步骤(八)项目功能的实现之另一种分页方式【mongoose-sex-page】
- Wannafly挑战赛27: E. 黄魔法师(构造)
- 第五十五节,IO多路复用select模块加socket模块,伪多线并发
- iOS 创建 pch 文件
- matlab中ode指令,在Matlab中使用ODE选择步长
- 计算机打印机共享服务怎么开,windows7系统打印机共享怎么设置?windows7系统打印机共享设置步骤...
- android代码控制组件的移动,Android自定义控件实现随手指移动的小球
- 即使Windows DVD Maker不存在,如何在Windows 8上创建DVD-DVDStyler
- Java怎么屏蔽骂人的词_表示嫌弃一个人的词语-高级的含蓄的骂人的话-形容很反感一个人成语...
- 表白代码c语言,C语言告白代码,一闪一闪亮晶晶~
- Java企业应用系统——MES工厂智造系统 包含ERP WMS
- 常见条码碳带质量问题有哪些影响?
热门文章
- cpufreq 频率设置verify
- python编程自然数表达式_实现四则运算 (python实现)by 周乃君 张宏根
- python实现企业微信定时发送文本消息
- 华为智慧屏鸿蒙应用,华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀
- 随机游走模型 matlab,随机游走的matlab实现
- 图机器学习——2.1 节点嵌入:基于随机游走
- 三阶魔方层先还原方法图解
- mysql mtq_GoLang 连接 Mysql 数据库
- Spring In Action 4 学习笔记(一)Spring概览
- ios中Date.prase()兼容问题