Qt之Quazip的编译与使用(压缩文件)

1.QuaZip的的编译依赖于zlib库
Zlib库下载地址:
Zlib库的下载地址
QuaZip的下载地址
QuaZipde 下载地址
编译器:
mingw32
Qt版本:Qt5.6.1;
本文下载的zlib库的版本是:zlib-1.2.11
2.Zlib的编译步骤:
(1)解压zlib库;
(2)启动Qt5.6 for DeskTop(MinGW4.9.2)
(3)切换当前目录为zlib库
cd zlib-1.2.11
(4)命令行输入一下命令
copy win32\makefile.gcc makefile.gcc
mingw32-make -f makefile.gcc
在当前目录下可以看到生成的库文件:libz.a、libz.dll.a、zlib1.dll
需要用到头文件:zconf.h、zlib.h
3.QuaZip编译
(1)添加头文件(上面提到的头文件)
(2)添加库文件
LIBS +=./debug/libz.a
./debug/libz.dll.a
./debug/lzlib1.dll
注意:添加的路径一定要正确,并且有以上提到的三个库文件;
4.运行
在debug的目录中就可以找到quazipd.dll动态库
这种事debug模式下的调试,如果要使用release模式下的库,方法一样;
5.Quazip库的使用
QuaZip库可以试想文件的解压缩功能,在这里我只是使用到文件的压缩功能;
以下代码是文件和文件的压缩功能
头文件:

#ifndef ZIPDIR_H
#define ZIPDIR_H
#include "./include/JlCompress.h"
#include 
#include 

class ZipDir : public QThread
{
    Q_OBJECT
public:
    explicit ZipDir(QObject *parent = 0);
    ~ZipDir();
    virtual void run();
    void setPath(QString systemfile,QString datafile,QString errorfile);
public:
    QString systemPath;
    QString dataPath;
    QString errorPath;
    QTime tempTime;
    bool compressDir(QString path);
    bool removeDir(QString path);
};

#endif // ZIPDIR_H

.cpp文件

#include "zipdir.h"
#include 
#include 
#include 

ZipDir::ZipDir(QObject *parent) : QThread(parent)
{
    systemPath="";
    dataPath="";
    errorPath="";
    tempTime=QTime(11,33,0);

}

ZipDir::~ZipDir()
{

}

void ZipDir::run()
{
    while(1){
       QDateTime currTime=QDateTime::currentDateTime();
       qDebug()<0 ){
           if(systemPath!=""){
             compressDir(systemPath);
           }
           if(dataPath !=""){
             compressDir(dataPath);
           }
           if(errorPath !=""){
               compressDir(errorPath);
           }
       }

    }
    this->exec();

}

void ZipDir::setPath(QString systemfile,QString datafile,QString errorfile)
{

    systemPath=systemfile;
    dataPath=datafile;
    errorPath=errorfile;
}

bool ZipDir::compressDir(QString path)
{
       QDir dir(path);
       if(!dir.exists()){
           qDebug()<<"error";

           return false;
       }
       //系统日志和数据日志
       dir.setFilter(QDir::Dirs|QDir::NoDotAndDotDot);
       QFileInfoList list=dir.entryInfoList();
       qDebug()<

main.cpp

#include 
#include "./include/JlCompress.h"
#include 
#include 
#include "zipdir.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    ZipDir dir;
    QString str1="E:/Work/build-ServerPro-Debug/debug/system";
    QString str2="E:/Work/build-ServerPro-Debug/debug/datalog";
    QString str3="E:/Work/build-ServerPro-Debug/debug/errlog";
    dir.setPath(str1,str2,str3);
    dir.start();
    return a.exec();
}

你可能感兴趣的:(Qt之Quazip的编译与使用(压缩文件))