http://hi.baidu.com/haven2002/item/1f1a3d20e122d60c43634a7a
HZIP hz = OpenZip(_T("D:\\aa.zip"),0);
SetUnzipBaseDir(hz,_T("D:\\"));
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);
//HZIP hz = OpenZip(_T("D:\\aa.zip"),0);
//SetUnzipBaseDir(hz,_T("D:\\"));
//ZIPENTRY ze;
//GetZipItem(hz,0,&ze);
//UnzipItem(hz, 0, ze.name);
//CloseZip(hz);
//HZIP hz = OpenZip(_T("D:\\aa.zip"),0);//读取zip包
设置解压目录
//SetUnzipBaseDir(hz,_T("D:\\"));
//if (hz==NULL)
//{
// AfxMessageBox("读取失败");
// return;
//}
//int i;
// ZIPENTRY ze;
//
//ZRESULT result = FindZipItem(hz,_T("index.csv"),true,&i,&ze);
//if (result == ZR_NOTFOUND)
//{
// CloseZip(hz);
// AfxMessageBox("查找index.csv文件失败");
// return;
//}
解压到内存
//ibuf = new char[ze.unc_size+1]; //ze.unc_size为文件自身的大小,所以必须多加一字节结束,否则在解析文件的时候最后一行就可能会出现乱码。应为ze.unc_size+1
//memset(ibuf,0,ze.unc_size+1); //这里主要强调一下在解压到内存操作的时候,字节数必须加1。
//UnzipItem(hz,i, ibuf, ze.unc_size);
//CloseZip(hz);
//HZIP hz = CreateZip("c:\\simple1.zip",0);
//ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp");
//ZipAdd(hz,"znsimple.txt", "c:\\simple.txt");
//CloseZip(hz);