zoukankan      html  css  js  c++  java
  • Qt之QuaZIP(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();
    }

    更多参考

    可以直接下载我编译好的库,里面包含源码及库文件。

  • 相关阅读:
    Linux创建删除文件和文件夹
    Linux操作大全
    CentOS7从一般用户切换到root用户
    Eclipse一直building workspace问题解决
    maven项目启动找不到org.springframework.web.context.ContextLoaderListener
    java中如何补齐汉字字符
    java中如何根据函数查询引用的jar包
    delphi中Tkbmmemtable数据转成SQL脚本
    java设计模式(一)——单例模式
    UMl类图基本认识
  • 原文地址:https://www.cnblogs.com/itrena/p/5938382.html
Copyright © 2011-2022 走看看