Qter 发表于 2018-4-12 15:30:37

qCompress/qUncompress

Qt中提供了qCompress/qUncompress来进行文件的压缩与解压,但存在两个问题:
[*]无法很好地压缩/解压缩文件夹。
[*]只能将一个文件压缩为某种格式,压缩后的文件无法通过其它解压工具打开(如:7zip,或WinRAR),只能通过qUncompress解压读取,也就是说qCompress生成的压缩文件不包含普通压缩文件的一些头信息,导致无法解压。

Qter 发表于 2018-4-12 15:34:56

void MainWindow::zipUnZip()
{
    //zipping
   Zip("/home/qt/comm_record.txt","/home/qt/demo.dor");
   qDebug() << "Done zipping";

   //unzipping
   Unzip("/home/qt/demo.dor","/home/qt/demo_unzipped.txt");
   qDebug() << "Done unzipping";
}


void Zip (QString filename , QString zipfilename){

    QFile infile(filename);
    QFile outfile(zipfilename);
    infile.open(QIODevice::ReadOnly);
    outfile.open(QIODevice::WriteOnly);
    QByteArray uncompressedData = infile.readAll();
    QByteArray compressedData = qCompress(uncompressedData,9);
    outfile.write(compressedData);
    infile.close();
    outfile.close();
}

void Unzip (QString zipfilename , QString filename){
    QFile infile(zipfilename);
    QFile outfile(filename);
    infile.open(QIODevice::ReadOnly);
    outfile.open(QIODevice::WriteOnly);
    QByteArray uncompressedData = infile.readAll();
    QByteArray compressedData = qUncompress(uncompressedData);
    outfile.write(compressedData);
    infile.close();
    outfile.close();
}

#include <QtCore/QFile>
#include <QByteArray>
#include <QBitArray>
页: [1]
查看完整版本: qCompress/qUncompress