我正在尝试解压缩Zip文件。在安卓设备上使用最新的Qt 5.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模式中打开
这很有道理,因为它一开始就无法打开文件。
感谢任何帮助,因为我已经为这个问题挣扎了几天了。
问题是一个未解决的QT Bug。其中QFile::seek不能超过32位整数以上的限制。https://bugreports.qt.io/browse/QTBUG-84033
在发现问题后,我可以通过在java for android中实现用于解压缩文件的本地代码来解决这个问题。由于iPhone只在64位系统上运行,因此本机实现不需要移植到ObjC。