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

希望能提供具体的实现代码,如果没有代码提示一下也可以~... 希望能提供具体的实现代码,如果没有代码提示一下也可以~ 展开
 我来答
百度网友13eda02
推荐于2017-11-25 · TA获得超过778个赞
知道小有建树答主
回答量:1048
采纳率:77%
帮助的人:367万
展开全部

由于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 主要有:  
压缩相关:  
zipOpen64  
zipClose  
zipOpenNewFileInZip  
zipCloseFileInZip  
zipWriteInFileInZip
解压相关:  
unzOpen64  
unzClose  
unzGetGlobalInfo64  
unzGoToNextFile  
unzGetCurrentFileInfo64  
unzOpenCurrentFile  
unzCloseCurrentFile  
unzReadCurrentFile
想必看到这些名字都能猜到怎么用了吧。好的接口果然能带给人愉悦的。minizip 中的这些函数有的是带“64”的有的是不带的,有的还有“2”、“3”、“4”版本。这里一律用带 64 的,不带“2”、“3”、“4”的。

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

追问
这个内容我也有看过,但是到自己使用的时候感觉有一点儿乱,有没有一个小的demo呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式