Я пытаюсь сжать текстовый файл с QT:Невозможно открыть сжатый файл
QFile inFile("d:\\build\\Directories\\Debug\\files\\developer.txt");
bool open_file_result = inFile.open(QIODevice::ReadOnly);
QByteArray ba = inFile.readAll();
QFile file("d:\\build\\Directories\\Debug\\files\\developer.gz");
bool open_zip_result = file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << qCompress(ba);
file.close();
open_file_result
и open_zip_result
являются как true
. Я также могу видеть zip-файл (он также имеет размер, например 50 КБ), но я не могу его открыть. Я получаю следующую ошибку:
The archive is either in unknown format or damaged.
Что я делаю неправильно? Если у вас есть лучший/другой способ сжать текстовый файл, скажите, пожалуйста!
Я ничего не знаю о 'QFile' конкретно, но я знаю, что Windows требует, чтобы вы открывали такие вещи в режиме' binary'. Есть ли способ сделать это с помощью 'QFile'? –
Возможно, 'qCompress' просто сжимает указанные данные и не пишет заголовок файла gz. Вы должны открыть любой из gz-файла и проверить его заголовок для некоторых «волшебных» данных. И сравните с вашим сгенерированным. – eraxillan