Qt5压缩解压缩文件/夹

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

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

#include 
#include 
#include 
#include 

#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())
        {
            QByteA

你可能感兴趣的:(QT)