(作者:陈波,2011-11-16,转载请注明 Form:http://blog.youkuaiyun.com/jinhill/article/details/6979200)
#include "stdafx.h"
#include "stdio.h"
#include "unzip.h"
#pragma comment(lib,"zlibstat.lib")
int main(int argc, char* argv[])
{
intrv = UNZ_ERRNO;
inti = 0;
unz_global_infoglobal_info;
unz_file_infofinfo;
charszFileName[MAX_PATH] = {0};
charchExtraField[255] = {0};
charszComment[255] = {0};
charchBuf[10240] = {0};
intnLen = 10240;
//打开压缩文件
unzFileuzf = unzOpen("HelloWorld.zip");
if(uzf== NULL)
{
returnrv;
}
//获取压缩文件信息
rv= unzGetGlobalInfo(uzf, &global_info);
if(rv!= UNZ_OK)
{
returnrv;
}
//枚举压缩包内第一个文件
rv= unzGoToFirstFile(uzf);
if(rv!= UNZ_OK)
{
returnrv;
}
for(i=0;i<global_info.number_entry; i++)
{
//获取压缩包内文件的信息
rv= unzGetCurrentFileInfo(uzf,
&finfo,
szFileName,
sizeof(szFileName),
(void*)chExtraField,
sizeof(chExtraField),
szComment,
sizeof(szComment));
if(rv!= UNZ_OK)
{
break;
}
printf("FileName:%s\n",szFileName);
//打开压缩包内的文件
rv= unzOpenCurrentFile(uzf);
if(rv!= UNZ_OK)
{
break;
}
//读压缩包内的文件
rv= unzReadCurrentFile(uzf, chBuf, nLen);
//关闭压缩包内文件句柄
rv= unzCloseCurrentFile(uzf);
//枚举压缩包内下一个文件
rv= unzGoToNextFile(uzf);
if(rv!= UNZ_OK)
{
break;
}
}
//关闭压缩包文件
rv= unzClose(uzf);
return0;
}