首 页 行业热点 新车 试驾评测 养车用车 车型库

如何在linux平台下使用C++语言实现多文件的压缩解压缩(使用zlib依赖库)必重谢!

发布网友 发布时间:2022-04-22 09:33

我来回答

1个回答

热心网友 时间:2023-10-27 22:41

由于Unix系一贯坚持功能分离,所以通常是先tar再gzip来完成多文件一次压缩。

开发中一般是借助zlib-X.X.X.tar.gz\zlib-X.X.X.tar\zlib-X.X.X\contrib\minizip\实例中的接口:

ZLib 可能并不是一个针对 ZIP 文件的库,它只是一个针对 gzip 以及 deflate 算法的库。它提供了一个叫做 minizip
 (contrib\minizip) 例子来给出操作 ZIP 文件的方法。下文将从 ZLib 出发,归结出两个傻瓜接口:BOOL ZipCompress(LPCTSTR lpszSourceFiles, LPCTSTR lpszDestFile);
BOOL ZipExtract(LPCTSTR lpszSourceFile, LPCTSTR lpszDestFolder);  
要引入的源文件  
ZLib 主目录下的代码,除 minigzip.c、example.c 外;  
contrib\minizip 下的代码,除 minizip.c、miniunz.c 外。
相关 API  

然 minizip 更像是个例子,但是除去其主程序 minizip.c 和 miniunz.c 后,剩下的部分我们可以看作是 ZLib 
的一个上层库,它封装了与 ZIP 文件格式相关的操作。而 minizip.c 和 miniunz.c 
就是我们要改写的——把它从命令行程序改为上述傻瓜接口。minizip.c 和 miniunz.c 中用到的 API 主要有:  
压缩相关:  
zipOpen  
zipClose  
zipOpenNewFileInZip  
zipCloseFileInZip  
zipWriteInFileInZip
解压相关:  
unzOpen  
unzClose  
unzGetGlobalInfo  
unzGoToNextFile  
unzGetCurrentFileInfo  
unzOpenCurrentFile  
unzCloseCurrentFile  
unzReadCurrentFile
想必看到这些名字都能猜到怎么用了吧。好的接口果然能带给人愉悦的。minizip 中的这些函数有的是带“”的有的是不带的,有的还有“2”、“3”、“4”版本。这里一律用带  的,不带“2”、“3”、“4”的。

来源参考:http://www.cppblog.com/Streamlet/archive/2010/09/22/127368.html

追问这个内容我也有看过,但是到自己使用的时候感觉有一点儿乱,有没有一个小的demo呢

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com