zoukankan      html  css  js  c++  java
  • 为什么文件占用的空间会大于文件实际大小.

    如果你检查文件夹的属性,你会看到文件大小(Size)和文件在磁盘上的大小 (Size on disk).

    这两个值或多或少有点差异,这取决于你用的文件系统和文件类型.

    有可能两个值之间会相差1GB甚至更多 .

    你可以在Windows Explorer中右击任意文件夹然后在右键菜单中选择属性(properties)来验证.

    如果文件夹中有大量文件,可能需要一段时间才能显示完毕.

    以下截图中你可以看到,有0.2GB( Gigabyte )的差异,相对总数来说并不大.然而不同情况下可能有很大的差异.

    size on disk

    那么为什么有差异呢?

    原因在于文件系统(file systems )和簇(cluster sizes)大小.这里不打算讲太多细节的东西,每个文件系统Windows都支持.比如NTFS或者FAT32, 都用簇(clusters)的概念

    簇是一个磁盘空间的最小单元  微软官方解说如下:

    簇大小是一个磁盘用来存储文件的最小单位. 如果一个文件大小不是簇的偶数倍,额外的空间必须用来储存这个文件,直至到簇的下一个偶数倍数。(这个是直翻的感觉不太好理解,按照我对簇的理解应该是… 如果一个文件没有超过一个或多个簇的大小,那么簇剩余的空间也会分配给这个文件.直到下个文件才会用新的簇保存.)

    一些默认的簇大小:

    • NTFS 2 GB - 16 TB drives - 4 KB
    • FAT16 1 GB - 2 GB drives - 32 KB
    • FAT16 2 GB - 4 GB drives - 64 KB
    • FAT32 256 MB - 8 GB drives - 4 KB

    想象下这个情景: 如果你有 1 Gigabyte FAT16 的磁盘. 在上面存储了1000个大小为 1 Kilobyte 的文件.

    属性对话框中的文件大小会显示 1,000 Kilobyte, 而文件在磁盘上的大小会显示 32,000 Kilobyte (1000x32KB) ,共 31,000 Kilobyte的差异.

    每个文件的大小是 1 Kilobyte, 然后浪费 31 Kilobyte . 原因这个磁盘簇的大小是32 Kilobyte.

    这个问题在Fat32和NTFS的文件系统上有所减小,因为这两个系统默认的簇大小是4 Kilobyte. 不过一些USB 设备,或者老系统可能还是用FAT16文件系统.

    随着容量的增加,这个又一次成为了问题. 一个64TB的NTFS卷是32kb .

    查看磁盘的簇大小

    cluster size windows

    1. 按下Windows键,然后输入CMD ,右击显示的cmd.exe然后在右键菜单中选择以管理员运行.
    2. 在命令行窗口中输入 chkdsk  盘符(比如 chkdsk d:) 然后等待执行完成.
    3. 检查 "bytes in each allocation unit" 这一项. 他是字节(bytes)单位. 如果你要转为KB(Kilobytes), 除以1024就可以了. 以图中的例子来说 , 4096 bytes就是4 Kilobyte (4096 / 1024 = 4).

    我们能做什么?

    基于具体存储使用,我们可以减少簇的大小:

    1. 用Fat32 或 NTFS 代替FAT16(14年的文档..我感觉FAT16实在太遥远了,这年头还用FAT16的估计也转不到FAT32和NTFS). 不过这个可能无法实现,比如有些文件系统就是要求FAT16格式. 如果没有这样的需求,你最好转一下,用来节省空间. 你可以用命令行工具 CONVERT进行转换.比如你要把文件系统转为ntfs , 你可以打这个命令CONVERT d: /fs:ntfs (注 : FAT文件系统的原有数据不会丢失).
    2. 分区的时候.你同样可以减少每个盘的簇大小.默认情况下 512 MB FAT16 分区簇大小是 16KB, 1GB是32KB.

    英文原文在此,转载请注明出处.

  • 相关阅读:
    SharePoint 2010 Pop-Up Dialogs SharePoint 2010 弹出对话框
    SharePoint 2010 中创建超链接到Pop-Up对话框
    嵌入式表单字段中的内容可能被服务器更改以删除不安全的内容。是否要重新加载您的页面以查看保存结果?
    SharePoint 2010 中新建项目时显示的“新”“New”字样探讨
    SharePoint 2010 站点允许匿名访问
    SharePoint 2010 在允许匿名访问的网站中隐藏登陆链接
    SharePoint 2010 隐藏我的网站、我的档案链接
    SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单)
    SharePoint 2010 添加项目到用户/欢迎菜单
    慎用strcpy()
  • 原文地址:https://www.cnblogs.com/haseo/p/3884522.html
Copyright © 2011-2022 走看看