Zlib 压缩解压带密码的zip文件
本帖最后由 memorylibrary05 于 2012-12-12 15:07:00 编辑 ZLib 是不是放弃对对带密码的zip压缩/解压的支持了哦?
http://bbs.csdn.net/topics/90497920
我在网上下了一个实例,使用密码成功压缩后,无法进行解压。使用winrar等解压软件亦无法解压,提示密码错误。
代码如下
//打开/创建zip文件
zipFile zip = zipOpen(strDest.c_str(), APPEND_STATUS_CREATE);
if (NULL == zip)
{
return false;
}
FILE *fp = fopen("d:\\test.txt", "rb");
if (!fp)
{
//文件读取失败
return false;
}
long size = filelength(fileno(fp));
char *pFileBuf = new char[size];
memset(pFileBuf, 0, size);
fread(pFileBuf, 1, size, fp);
unsigned long crcValue = crc32(crcValue, (const Bytef*)pFileBuf, size);
//向zip文件中添加文件
//int iValue = zipOpenNewFileInZip(zip, "test.txt", &zf, NULL, 0, NULL, 0, "test", Z_DEFLATED, Z_BEST_COMPRESSION);
int iValue= zipOpenNewFileInZip3(zip, "test.txt", &zf, NULL, 0, NULL, 0, "test", Z_DEFLATED, Z_BEST_COMPRESSION, 0,
-MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
"test", crcValue);
if (ZIP_OK != iValue)
{
return false;
}
iValue = zipWriteInFileInZip(zip, pFileBuf, size);
if (ZIP_OK != iValue)
{
return false;
}
// if (0 == iValue)
// {
// return false;
// }
//添加完毕
zipCloseFileInZip(zip);
zipClose(zip, NULL);
delete[] pFileBuf;
return true;
是不是我代码有问题哦,有没有哪位前辈用过zlib压缩/解压过带密码的zip文件哇?求指教。
或者使用其它库的也行,只要不是调命令的都可以。
我之前用的zip_utils库,但是总是会发生ZR_FALTE错误,各种求解未果后,开始研究zlib,但是zlib要是真不支持密码,就只能换了。
[解决办法]
我来顶一个,虽然我不懂。
[解决办法]
我有号么?试验一下