先上代码,压缩包的文件结构解析: zip=unzOpen(resItem->filename); if(0==zip) return false; done=unzGoToFirstFile(zip); while(done==UNZ_OK) { unzGetCurrentFileInfo(zip, &file_info, szZipName, sizeof(szZipName), NULL, 0, NULL, 0); _strupr_s( szZipName, sizeof(szZipName) ); for(int i=0; szZipName[i]; i++) { if(szZipName[i]=='/') szZipName[i]='//'; } DWORD dwFileNum = 0; DWORD dwFilePos = 0; unzGetCurrentFileID(zip, &dwFileNum, &dwFilePos); FilePosInfo *pFPI = new FilePosInfo; pFPI->dwFileNum = dwFileNum; pFPI->dwFilePos = dwFilePos; resItem->mapFilePosInfoPtr.insert( FilePosInfoPtrMap::value_type(std::string(szZipName), pFPI) ); done=unzGoToNextFile(zip); } unzClose(zip); zip=unzOpen(resI 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交