我正在尝试解压缩Zip文件。在Android设备上使用最新的QT5.15。
QFile downloadedZipFile(VALID_ZIP_LOCATION);
QuaZip zip(&downloadedZipFile);
if (!zip.open(QuaZip::mdUnzip)) {
qDebug() << "error" << zip.getZipError();
}如果我的文件超过2GB,它将得到一个错误-1000。2GB以下的文件正在按预期工作。
我试过了
zip.setZip64Enabled(true);在打开文件之前,没有成功。我还尝试使用构造函数。
QuaZip zip(VALID_ZIP_LOCATION)在稍后访问zip时,我还会得到以下错误:
QuaZip::goToFirstFile():ZIP在mdUnzip模式下未打开
这是有意义的,因为它一开始就无法打开文件。
任何帮助都是非常感谢的,因为我已经为这个问题挣扎了几天。
发布于 2020-09-02 09:28:07
问题是一个未解决的QT-Bug。其中QFile::seek不能超过32位整数的限制。https://bugreports.qt.io/browse/QTBUG-84033
在发现问题之后,我可以通过在java中为android解压缩文件实现本机代码来解决这个问题。由于iPhones只在64位系统上运行,因此本机实现不需要移植到ObjC。
https://stackoverflow.com/questions/63267130
复制相似问题