谈谈使用C程序实现zip文件解压问题

zip文件使用的压缩算法为deflate压缩,目前能处理inflate压缩数据的函数库有zlib函数库,其中主要的函数有inflate和uncompress函数两种;

(1)inflate和uncompress函数的区别

uncompress将内存中数据进行解压,与compress压缩函数一起使用,实现过程中会调用inflate函数,而且需要对inflate函数中的流参数进行初始化。
inflate函数是uncompress实现的一部分,提现的是deflate压缩思想,但是不能直接使用,需要很多参数的配置,可见inflate函数只是一个基函数。
目前一些需要压缩的网络数据常常需要使用uncompress函数
(2)如何实现zip文件解压

第一、可以使用Xunzip函数库进行解压,但是如遇到zip文件损坏的情况可能会出现程序崩溃,这是因为Xunzip函数未对zip格式进行有效检验可能会出现数组越界错误;

第二、可以基于uncompress函数自己编写一个Zip文件解压类,其中需要了解zip文件具体格式,相关格式可以去知网中查找,具体而言需要提取出其中的附加信息、压缩数据,再将压缩数据使用uncompress函数进行解压,需要指出的是defalte压缩数据格式有静态、动态多种,详情请参照http://www.cnblogs.com/esingchan/p/3958962.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值