简述
前段时间有个项目需要将文件进行压缩处理,效率最高的当然是直接集成源码,调用接口函数。下面介绍如何使用开源库zlib,通过函数调用的方式实现文件压缩。
代码之路
在官网上下载zlib开源库代码,拷贝源码中的minizip文件夹到项目目录,添加minizip文件夹下的文件。
minizip文件夹下有两种格式的文件,.h文件为头文件,.c文件为源文件,具体如下:
头文件:crypt.h ioapi.h iowin32.h mztools.h unzip.h zconf.h zip.h zlib.h
源文件:ioapi.c iowin32.c mztools.c unzip.c zip.c
编写接口类,接口类的主体有两个函数,一个压缩文件接口,一个解压文件接口。
接口类代码如下,首先是头文件:
//myzip.h
#include <QObject>
#include <QDebug>
#include "minizip/zip.h"
#include "minizip/unzip.h"
#include "minizip/iowin32.h"
#define MAX_BUFF_SIZE (1024*1024*100)
class Myzip : public QObject
{
Q_OBJECT
public:
Myzip();
~Myzip();
//压缩文件 压缩单个文件
void compressFile(QString srcfile, QString zipfile);
//解压文件
void uncompressFile(QStringList listfile, QString zipfile);
si