【发布时间】:2020-08-05 14:15:59
【问题描述】:
我正在尝试解压缩 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 模式下没有打开
这是有道理的,因为它一开始就无法打开文件。
感谢任何帮助,因为我已经为这个问题苦苦挣扎了几天。
【问题讨论】:
-
您确定您的“2GB 以上”zip 文件没有使用 deflate64 压缩吗? Quazip 使用 zlib,而 zlib 不支持 deflate64 压缩。我自己在寻找“完美”的 zip 提取库,发现没有一个 C 库实际上支持 deflate64。目前唯一的解决方案是使用 7-zip 库进行解压。