我从这个来源使用unzip.h和.cpp: http://www.codeproject.com/KB/files/zip_utils.aspx
正如标题所说 - 当我解压缩0字节的文件时,我得到了ZR_FALTE。我一直在搜索这个错误,但没有找到任何答案。我还在作者codeproject post上发布了一个关于codeproject的问题,但之前没有回答同样的问题。
我的问题是,如果有人之前使用过该来源并且知道如何修复它。或者在其他条件下可能发生错误。
我缩小错误并忽略它的当前方式是:
ZENTRY zEntry;
ZRESULT zRes;
// uncompress...
if (zRes == ZR_FLATE && zEntry.comp_size == 0 && zEntry.unc_size == 0)
{
// No error
}
源中错误的定义是: “de /通胀代码中的内部错误”
由于
答案 0 :(得分:1)
这是函数中的错误:unzReadCurrentFile(...)。您可以通过添加以下行来修复它(在unzip.cpp行:3486中):
if(pfile_in_zip_read_info->rest_read_uncompressed==0)
{
if (reached_eof!=0) *reached_eof=true;
return UNZ_EOF;
};
正如您所看到的,对于零大小的文件,EOF检测被破坏,我想这是因为缓冲区大小检查,后来添加了。