zoukankan      html  css  js  c++  java
  • Qt之zip压缩/解压缩(QuaZIP)

     

    摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。

    简述

    QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。

    Qt中提供了qCompress/qUncompress来进行文件的压缩与解压,但存在两个问题:

    1. 无法很好地压缩/解压缩文件夹。
    2. 只能将一个文件压缩为某种格式,压缩后的文件无法通过其它解压工具打开(如:7zip,或WinRAR),只能通过qUncompress解压读取,也就是说qCompress生成的压缩文件不包含普通压缩文件的一些头信息,导致无法解压。

    QuaZIP类说明

    说明
    JlCompress 典型操作工具类
    QuaAdler32 Adler32算法校验和
    QuaChecksum32 校验和接口
    QuaCrc32 CRC32校验和
    QuaGzipFile GZIP 文件操作
    QuaZIODevice 压缩/解压 QIODevice
    QuaZip ZIP 文件
    QuaZipDir ZIP文件内目录导航
    QuaZipFile ZIP文件内的文件
    QuaZipFileInfo ZIP压缩包内的文件信息
    QuaZipFilePrivate QuaZip的接口
    QuaZipNewInfo 被创建的文件信息
    QuaZipPrivate QuaZIP内部类

    使用

    接口说明

    QuaZip中的JlCompress类用来压缩和解压缩文件

    /**
        压缩文件夹
        参数一fileCompressed:压缩后的文件
        参数二dir:待压缩的目录
        参数三recursive:是否递归
    **/
    static bool compressDir(QString fileCompressed, QString dir = QString(), bool recursive = true);
    
    /**
        解压缩文件夹 
        参数一fileCompressed:待解压缩的文件
        参数二fileCompressed:解压缩存放的目录
    **/
    static QStringList extractDir(QString fileCompressed, QString dir = QString());

    配置

    在工程中将quazip.lib所在库目录、头文件所在的目录添加到工程中。

    pro中添加:

    LIBS += -L"D:/quazip/lib" -lquazip
    INCLUDEPATH += D:/quazip/src
    DEPENDPATH += D:/quazip/src

    压缩/解压缩

    #include <QApplication>
    #include "JlCompress.h"
    
    int main(int argc, char **argv)
    {
        QApplication app(argc,argv);
    
        // 压缩文件夹
        JlCompress::compressDir("F:\QuaZip.zip", "F:\QuaZip");
    
        // 解压缩文件夹
        JlCompress::extractDir("F:\QuaZip.zip", "F:\ExtractQuaZip");
    
        return app.exec();
  • 相关阅读:
    /proc/interrupts 和 /proc/stat 查看中断的情况
    publish and submit
    camera shading比例
    高负载linux调优
    linux网络socket 接口转
    深入分析linux调度机制
    大型网站架构之分布式消息队列
    Linux下高并发socket最大连接数所受的各种限制(详解)
    Linux服务器高并发实践经历
    oracle: 分割字符串,或者查找字段里面的关键字(关键字1,关键字2,关键字3)
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/7345545.html
Copyright © 2011-2022 走看看