Qt5压缩解压缩文件/夹

这篇博客介绍了在Qt5环境下如何实现文件和文件夹的压缩与解压缩。由于缺乏直接支持全文件夹压缩的C/C++库,作者选择自行遍历文件并定义压缩格式。虽然不是标准的压缩格式,但足够满足个人需求。文中强调了压缩算法的重要性,并提到Qt5可以用于简单实现这一功能。测试代码经过MD5验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全网居然没找到一个能直接压缩整个文件夹的c/c++库,就算找到了zlib,karchive,archive等开源库,基本也是在Linux下支持的较好,在win下只有zlib还算是编译过了。而且不能全文件夹压缩的,都是buffer或者单文件压缩,这就好奇了,标准zip怎么搞?原来zip是有一个特定archive的,链接在此

由此思路,如果自己要压缩文件夹,那就自己遍历,然后自己定义压缩文件的格式就好了,当然不是标准化的压缩格式而已了。但是够自己使用就行。这么理解,实现文件夹的压缩就显得不那么重要了,重要的是压缩算法,而提供压缩算法的库就多了去了,也容易找到。下面就用qt5简单实现一个文件的压缩与解压缩。注意,没有全文件一次读取再压缩,是考虑到文件太大,比如4g,会直接冲爆你的内存。下面测试代码已使用MD5验证通过。show code:

#include <QCoreApplication>
#include <QFile>
#include <QDataStream>
#include <QDebug>

#define READ_BUFFER 10240
bool compress(QString ifile, QString ofile)
{
    QFile file(ifile);
    QFile output(ofile);

    if(file.open(QFile::ReadOnly) &&
            output.open(QFile::WriteOnly|QFile::Truncate))
    {
        QDataStream ds(&output);
        while(!file.atEnd())
        {
            QByteAr
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值