当前位置: 代码迷 >> VC >> unzip源码解压小弟我的一个特定Zip文件无法解压,小弟我把vs2008调试通过的源码传到网盘,希望们能帮小弟我解决
  详细解决方案

unzip源码解压小弟我的一个特定Zip文件无法解压,小弟我把vs2008调试通过的源码传到网盘,希望们能帮小弟我解决

热度:353   发布时间:2016-05-05 00:02:35.0
unzip源码解压我的一个特定Zip文件无法解压,我把vs2008调试通过的源码传到网盘,希望们能帮我解决
http://pan.baidu.com/s/1bn6e6bP

unzip的vs2008工程源码我打包在上面的网盘里,\unzip1\unzip文件夹下的a.zip是我的原始压缩文件,这个文件用这段代码解压不出来,我把a.zip用解压软件解压再压缩成q.zip后,q.zip可以用这段代码解压,不知道a.zip为什么不能解压?我用unrar.exe命令解压也提示a.zip不是标准的压缩文件,但是现成的解压软件可以正常解压。

unzip.cpp文件里最后一段代码可以改压缩文件的路径。
void main()
{
HZIP hz = OpenZip(_T("q.zip"),0);
ZIPENTRY ze; 
GetZipItem(hz,-1,&ze); 
int numitems=ze.index;
    for (int i=0; i<numitems; i++)
  { 
GetZipItem(hz,i,&ze);
UnzipItem(hz,i,ze.name);
  }
    CloseZip(hz);
}

------解决思路----------------------
这个a.zip就不是zip文件,而是gzip文件,当成zip文件当然解压不了。一般现成的解压软件的容错能力很好,不会光看扩展名判断格式,而是会自动检查所有支持的格式,所以能解压。
如果你用16进制编辑器打开,就能看到,zip文件是504B也就是'PK'开头的,而gzip文件是1F8B开头的。
  相关解决方案