Как использовать QuaZip для извлечения нескольких файлов?

У меня есть код ниже, чтобы перемещаться по списку папок и файлов в zip-архиве, создавая их по ходу (также создавая пути для файлов, если они еще не созданы).

Приложение вылетает при использовании readData(char*, qint64) извлекать данные из внутренних файлов для потоковой передачи в QFile, Я не думаю, что это правильная вещь для использования, но это все, что я видел (в очень свободном примере на этом сайте), и мне также пришлось изменить QuaZipFile.h, чтобы сделать функцию общедоступной, чтобы я мог ее использовать ( также намекает, что я не должен его использовать).

Он не падает на первый файл, который не имеет содержимого, но делает после этого. Вот необходимый код (спросите, хотите ли вы увидеть больше):

QFile newFile(fNames);
newFile.open(QIODevice::WriteOnly);
QTextStream outToFile(&newFile);
char * data;
int len = file.readData(data, 100000000);
if(len > 0) {
outToFile << data;
}
newFile.close();

Это не проходит int len линия. Что я должен использовать здесь?
Обратите внимание, что файл переменной определен ранее довольно примерно так:

QuaZip zip("zip.zip");
QuaZipFile file(&zip);
...
zip.goToFirstFile();
...
zip.goToNextFile();

И int, передаваемый readData, является случайным числом для максимального размера данных.

0

Решение

Причина сбоя заключается в том, что вы не выделили память для буфера с именем data,

3

Другие решения

Решаемые.

Я попытался использовать различные операции чтения (readData, read, readLine) и обнаружил, что эта строка работает без необходимости в буфере данных:

outToFile << file.readAll();
0

По вопросам рекламы [email protected]