我使用这个源代码中的unzip.h和.cpp:http://www.codeproject.com/KB/files/zip_utils.aspx
正如标题所说-当我解压缩0字节的文件时,我得到ZR_FALTE。我已经找遍了这个错误,但没有找到任何答案。我也为作者的codeproject帖子发布了一个关于codeproject的问题,但同样的问题以前也有人问过,没有答案。
我的问题是,如果有人以前使用过这个源,知道如何修复它。或者在其他可能发生错误的情况下。
目前我缩小错误并忽略它的方法是:
ZENTRY zEntry;
ZRESULT zRes;
// uncompress...
if (zRes == ZR_FLATE && zEntry.comp_size == 0 && zEntry.unc_size == 0)
{
// No error
}
源中错误的定义为:" de/inflation代码中的内部错误"
谢谢
这是函数: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检测被破坏了,我猜这是因为缓冲区大小检查,这是后来添加的。