QT QuaZip open () не работает -1000 - PullRequest
       57

QT QuaZip open () не работает -1000

0 голосов
/ 05 августа 2020

Я пытаюсь распаковать Zip-файл. Использование последней версии Qt 5.15 на устройстве Android.

QFile downloadedZipFile(VALID_ZIP_LOCATION);
QuaZip zip(&downloadedZipFile);
if (!zip.open(QuaZip::mdUnzip)) {
    qDebug() << "error" << zip.getZipError();
}

Если размер моего файла превышает 2 ГБ, появляется ошибка -1000. Файлы размером менее 2 ГБ работают должным образом.

Я пробовал

zip.setZip64Enabled(true);

перед тем, как открыть файл безуспешно. Я также пытался использовать конструктор

QuaZip zip(VALID_ZIP_LOCATION)

При доступе к zip позже я также получаю следующую ошибку:

QuaZip :: goToFirstFile (): ZIP не открывается в mdUnzip mode

, что имеет смысл, поскольку он не мог открыть файл в первую очередь.

Любая помощь приветствуется, так как я борюсь с этой проблемой уже несколько дней .

1 Ответ

0 голосов
/ 02 сентября 2020

Проблема в нерешенной QT-Bug. Где QFile :: seek не может превышать предел, превышающий 32-битное целое число. https://bugreports.qt.io/browse/QTBUG-84033

После определения проблемы я мог решить эту проблему, реализовав собственный код для распаковки файлов в java для android. Поскольку iPhone работают только на 64-битных системах, родную реализацию не нужно переносить на Obj C.

...