繁体   English   中英

QT QuaZip open() 失败 -1000

[英]QT QuaZip open() fail -1000

我正在尝试解压缩 Zip 文件。 在 Android 器件上使用最新的 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 不能超过 32Bit Integer 以上的限制。 https://bugreports.qt.io/browse/QTBUG-84033

确定问题后,我可以通过在 java 中为 android 实现解压缩文件的本机代码来解决此问题。 由于 iPhone 仅在 64 位系统上运行,因此不需要将本机实现移植到 ObjC。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM