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();
  • 相关阅读:
    【Oracle】dba_jobs字段说明
    【工作杂记】一次修改表字段名操作导致的报表缺失了2个小时的数据
    【SAP BO】无法识别账户信息:无法访问CMS。计算机上的CMS由于某个严重错误而停止。(FWM 20031)
    【虚拟机】在VMware中安装Server2008之后配置网络连接的几种方式
    vlc for android 编译过程
    ubuntu19更新源
    nginx错误Too many open files
    mp4流化
    编译ffmpeg的时候出现ERROR: libx264 not found
    nginx中Lua模块内置变量
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/7345545.html
Copyright © 2011-2022 走看看