Qt 之 ZIP开源库 QuaZIP

版权声明:本文为博主原创文章,未经博主允许不得转载。
一。简介
二。编译
- linux-g++ (Ubuntu 11.10, Qt 4.7.4)
- freebsd-g++ (Qt 4.0.0
- hpux-acc (HP-UX 11.11)
- hpux-g++ (HP-UX 11.11)
- win32-g++ (MinGW)
- win32-msvc2010 (MS VS 2010 Express, Qt 4.8.4)
- win32-msvc2010 (Qt Creator, Qt 5.0.1)
- some Symbian version, reportedly
下面你就可以按照你所使用的平台和方式编译QuaZIP。
三。使用
| JlCompress | 典型操作工具类 |
| QuaAdler32 | Adler32 算法校验和 |
| QuaChecksum32 | 校验和接口 |
| QuaCrc32 | CRC32 校验和 |
| QuaGzipFile | GZIP 文件操作 |
| QuaZIODevice | 压缩/解压 QIODevice |
| QuaZip | ZIP 文件 |
| QuaZipDir | ZIP文件内目录导航 |
| QuaZipFile | ZIP文件内的文件 |
| QuaZipFileInfo | ZIP压缩包内的文件信息 |
| QuaZipFilePrivate | QuaZip的接口 |
| QuaZipNewInfo | 被创建的文件信息 |
| QuaZipPrivate | QuaZIP内部类 |
下面给出一个自己用的解压缩ZIP的例子
- bool Ziper::Extract(const QString& in_file_path, const QString& out_file_path)
- {
- QuaZip archive(in_file_path);
- if (!archive.open(QuaZip::mdUnzip))
- return false;
- QString path = out_file_path;
- if (!path.endsWith("/") && !out_file_path.endsWith("\\"))
- path += "/";
- QDir dir(out_file_path);
- if (!dir.exists())
- dir.mkpath(out_file_path);
- for( bool f = archive.goToFirstFile(); f; f = archive.goToNextFile() )
- {
- QString filePath = archive.getCurrentFileName();
- QuaZipFile zFile(archive.getZipName(), filePath);
- zFile.open(QIODevice::ReadOnly );
- QByteArray ba = zFile.readAll();
- zFile.close();
- if (filePath.endsWith("/"))
- {
- dir.mkpath(filePath);
- }
- else
- {
- QFile dstFile(path + filePath);
- if (!dstFile.open(QIODevice::WriteOnly))
- return false;
- dstFile.write(ba);
- dstFile.close();
- }
- }
- return true;
- }
官方的测试用例也给出了很详细的使用方法。可以看下。未完待续。。。
Qt 之 ZIP开源库 QuaZIP的更多相关文章
- Qt之zip压缩/解压缩(QuaZIP)
摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它 ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- 站在巨人的肩膀上,C++开源库大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列 ...
- GitHub C 和 C++ 开源库的清单(含示例代码)
内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++标准库,包括了STL容器,算法和函数等. C++ Standard Library:是一系列类 ...
- C++开源库大全(转)
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列 ...
- C++开源库大全
标准库 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分. Standard Template Library:标准模板库 ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- 【转】Qt下使用glut库
ps:这个说的很明白,尤其是win10环境下用mingw环境时编程时碰到的问题, 1.加 windows.h 2.在.pro 添加libs 博文地址:Qt下使用glut库 本人使用的环境 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
随机推荐
- MySQL-快速入门(9)视图
1.什么是视图 视图是一个虚表.视图可以进行查询.增加.修改.删除.进行修改.增加.删除,将影响基本表中的数据. 2.视图相对基本表的优势 1>简单化:看到的就是想要的字段列,可以简化后续查询. ...
- CentOS7设置hostname、hosts、静态IP地址、关闭防火墙
针对新安装或者克隆后的虚拟机配置 1. 设置hostname 方法1: centos7 里面修改hostname的方式有所改变,修改/etc/hosts和/etc/sysconfig/network两 ...
- java基础知识部分知识点
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文 ...
- 2016青岛区域赛.Coding Contest(费用流 + 概率计算转换为加法计算)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- phpStudy配置sql、oracle---博主摘录
引用 :https://www.cnblogs.com/myBlogInWork/p/8657125.html 由于工作需要,要用到php+oracle写个项目,故而有了以下内容: 本来以为php有默 ...
- Docker 镜像的常用操作
镜像作为 Docker 三大核心概念中,最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌握的.本文将带您一步一步,图文并重,上手操作来学习它. 目录 一 Docker 下载镜像 1.1 下 ...
- git基本命令和仓库操作
首先git是什么?git是github上的一个代码托管工具,是一款代码版本管理工具,github上的代码是基于git来进行托管的.github是全球的开源社区.Git 保存的不是文件的变化或者差异,而 ...
- PAT Advanced 1011 World Cup Betting (20 分)
With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...
- 09java进阶——IO
1.File类 1.1目录及路径分隔符 package cn.jxufe.java.chapter09.demo01; import java.io.File; public class Test01 ...
- centos .7x service iptables save 错误解决方案
保存转发规则的时候,发现service iptables save 无效,而且报错[root@localhost bin]# service iptables saveThe service comm ...