Qt:Quazip的简单示例

ssk*_*ssk 6 qt quazip

我建立了quazip库.我需要一个简单的例子来说明如何解压缩zip文件.例如.

Quazip zipFile( QFile("test.zip") );
zipFile.unzip();
Run Code Online (Sandbox Code Playgroud)

quazip中显示的测试有点令人困惑.我搜索了一小段时间找一个例子,但我找不到一个.

小智 10

这是一个快速示例,显示如何读取文件.您需要对循环中的代码进行一些修改,以将数据写入文件或执行应用程序所需的任何操作:

QuaZip zip("zipFile.zip");
zip.open(QuaZip::mdUnzip);

QuaZipFile file(&zip);

for(bool f=zip.goToFirstFile(); f; f=zip.goToNextFile()) {
    file.open(QIODevice::ReadOnly);
    //same functionality as QIODevice::readData() -- data is a char*, maxSize is qint64
    file.readData(data,maxSize);
    //do something with the data
    file.close();
}

zip.close();
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用JlCompress类的静态函数.它非常易于使用.

静态公共成员函数

static bool     compressFile (QString fileCompressed, QString file)
static bool     compressFiles (QString fileCompressed, QStringList files)
static bool     compressDir (QString fileCompressed, QString dir=QString(), bool recursive=true)
static QString  extractFile (QString fileCompressed, QString fileName, QString fileDest=QString())
static QStringList  extractFiles (QString fileCompressed, QStringList files, QString dir=QString())
static QStringList  extractDir (QString fileCompressed, QString dir=QString()) 
static QStringList  getFileList (QString fileCompressed)
Run Code Online (Sandbox Code Playgroud)

资料来源:http://quazip.sourceforge.net/classJlCompress.html