为什么文件占用的空间会大于文件实际大小

以windows系统举例,先看几张图:

图1:文件的大小比占用空间更小。

image.png

图2:文件的大小和占用空间大小一致。

image.png

图3:文件大小比占用空间大小更大。

image.png

上面3张图展示了文件大小与占用空间的大小几种情况,前两种场景是比较常见的情况,之所以有时文件大小会比占用空间小时因为簇大小的限制,簇代表了可以分配用来保存文件的最小磁盘空间量,存放sparse.txt文件所在区簇的大小为4096字节,图1中文件大小为4096字节(可以使用chkdsk命令查看),所以5K的文件需要2个簇来存储,如下图所示:

image.png

图2所示文件大小为5M,5M正好是4096的整数倍,所以文件大小跟占用空间大小一样大。

下面重点说下第三种情况,这里涉及到稀疏文件问题,对于不支持稀疏文件的系统就不会出现这种情况,看个例子:

/**
     * 常规文件可能会有很多不必要的空间浪费
     * @throws IOException
     */
    @Test
    public void normalFile() throws IOException {
        File file = new File("d:/tmp/sparse.txt");
        Path path = file.toPath();
        FileChannel ch = FileChannel.open(path, StandardOpenOption.CREATE,StandardOpenOption.WRITE);
        ch.position(5*1024*1024L);
        ch.write(ByteBuffer.wrap("hello world".getBytes("utf-8")));
        ch.close();

    }

    /**
     * 稀疏文件模式
     * @throws IOException
     */
    @Test
    public void sparseFile() throws IOException {
        File file = new File("d:/tmp/sparse.txt");
        Path path = file.toPath();
        FileChannel ch = FileChannel.open(path, StandardOpenOption.SPARSE,StandardOpenOption.CREATE_NEW,StandardOpenOption.WRITE);
        ch.position(5*1024*1024L);
        ch.write(ByteBuffer.wrap("hello world".getBytes("utf-8")));
        ch.close();
    }

有的用户会发现文件管理中统计的文件大小与实际空间占用大小不一致,如空间大小提示超标文件大小未超标,也是因为这些原因导致的,综上所述,我司系统检测到的空间占用大小为实际文件占用空间的大小,而非文件本身的大小,如提示空间超标,请您升级空间大小,避免影响您的正常使用。

如您的主机配额超标很多,实际占用空间不大,是因为有很多小的缓存文件,比如\runtime\session 路径下的文件,如下图:

image.png

这类情况如果通过FTP或文件管理器删除太慢,请【提交工单】,可授权技术工程师为您批量删除处理。

原文链接:https://www.west.cn/faq/list.asp?unid=2568 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C盘占用大于实际文件可能由以下几个原因引起。 首先,系统文件和程序文件占用空间往往比实际文件所占空间大。在C盘中,包含了操作系统的系统文件,这些文件用于支持计算机的正常运行,如系统文件、注册表、驱动程序等。此外,安装的各种程序也占用一定的空间。这些系统文件和程序文件占用空间可能相对较大,导致C盘占用大于实际文件。 其次,操作系统的系统保护和回收站功能也导致C盘占用大于实际文件。操作系统的系统保护功能自动创建系统还原点,用于在系统出现问题时进行恢复。这些还原点占用一定的空间,随着时间的推移,占用空间越来越大。同时,回收站中的已删除文件占用一定的空间,虽然这些文件文件夹中已看不见,但它们仍然占用磁盘空间。 最后,临时文件的积累也可能导致C盘占用大于实际文件。在使用计算机的过程中,系统和应用程序生成临时文件,这些文件用于存储临时数据、缓存等。随着时间的推移,这些临时文件积累起来,占用一定的磁盘空间。 针对以上原因,我们可以采取一些措施来解决C盘占用大于实际文件的问题。首先,我们可以定期清理临时文件和回收站中的已删除文件,释放一些磁盘空间。其次,可以关闭系统保护功能或调整还原点的大小,使其占用空间过大。最后,可以使用磁盘清理工具来清理系统文件和程序文件中的无效和过时文件,进一步释放C盘的空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwwestcn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值