Название: Qt - Работа с zip фрхивами Отправлено: DikBSD от Январь 03, 2009, 18:28 Подскажите, как можно средствами Qt читать содержимое (распаковывать) zip-архивы и сжимать многоуровневые папки с файлами в zip.
Спасибо. Название: Re: Qt - Работа с zip фрхивами Отправлено: Dendy от Январь 03, 2009, 18:37 У них специальных классов или абстрактных интерфейсов для архивов нету. Ъ-way - переопределить QAbstractFileEngineHandler и изобрести велосипед (найти велосипед в интернете) для работы с архивами как с файлами. Я такой в своё время писал. Работало. Из Zlib наружу у них кажется только qCompressed() торчит.
Название: Re: Qt - Работа с zip фрхивами Отправлено: Karl-Philipp от Январь 03, 2009, 23:54 QuaZIP (http://quazip.sourceforge.net/) может быть поможет :)
Название: Re: Qt - Работа с zip фрхивами Отправлено: CuteBunny от Апрель 28, 2010, 04:34 не хочет этот QuaZip собиратся у меня... юзаю Qt4.6.1+mingw :-\
suxxx Название: Re: Qt - Работа с zip фрхивами Отправлено: CuteBunny от Апрель 28, 2010, 08:57 Ладно, кому интересно, в попу этот QuaZip, юзаю 7-Zip + QProcess и никаких проблем
Название: Re: Qt - Работа с zip фрхивами Отправлено: crossly от Апрель 28, 2010, 12:05 не хочет этот QuaZip собиратся у меня... юзаю Qt4.6.1+mingw :-\ а чего не хочет??.... ошибки хоть какие....??suxxx Название: Re: Qt - Работа с zip фрхивами Отправлено: pastor от Апрель 28, 2010, 12:56 На свой страх и риск можно заюзать заприваченные класы QZipReader и QZipWriter (src\gui\text\qzipwriter_p.h, src\gui\text\qzipreader_p.h)
Название: Re: Qt - Работа с zip фрхивами Отправлено: ufna от Апрель 28, 2010, 16:53 в 4.6.2 этими классами отлично все управляется, если операции по общей загрузки/выгрузки в архив, оно не умело "по отдельным файлам". Если надо, сброшу реализацию.
Название: Re: Qt - Работа с zip фрхивами Отправлено: Nimbus от Июнь 28, 2010, 05:12 На свой страх и риск можно заюзать заприваченные класы QZipReader и QZipWriter (src\gui\text\qzipwriter_p.h, src\gui\text\qzipreader_p.h) Эти классы как-то странно работают. Всё отлично запаковывают, а потом распаковывают. Но reader не может распаковать архивы, запакованные через WinRAR методом ZIP с любым сжатием.Провёл дебаг - QZipReader получает неправильыне данные о файле в архиве через метод QZipPrivate::fillFileInfo. Почему-то все значения (isFile, isDir, isSymLink) структуры QZipReader::FileInfo получаются равными нулю. Ясно, что проблема в получении информации о файлах в архиве. Код Во вложении архив, в архиве 1.zip - это архив запакованный через QZipWriter, а 2.zip - архив, запакованный WinRAR'ом. Оба прекрасно открываются WinRAR'ом. Но вот, 2.zip не хочет извлекаться QZipReader'ом. Погуглил, нашёл альтернативные классы для ZIP-архивации. http://code.google.com/p/osdab/source/browse/trunk/OSDaB-Zip Протестирую - отпишусь. Работает! Правда, пришлось закомментировать некоторые куски кода, например: Код Очень хорошие исходники, по которым удобно проводить дебаг. Название: Re: Qt - Работа с zip фрхивами Отправлено: ритт от Июнь 28, 2010, 11:23 попробуй применить этот патч - http://qt.gitorious.org/~ritt.k/qt/ritts_qt/commit/4f8968cf2966ba6e564c8aa646fffdce3708fa72
точнее, его часть, касающуюся src/gui/text/qzip.cpp и протестировать QZipReader с 2.zip ещё раз Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 05, 2010, 13:11 Ладно, кому интересно, в попу этот QuaZip, юзаю 7-Zip + QProcess и никаких проблем Очень интересно, а можно поподробней как юзаете, порядок действий и пример мб? Название: Re: Qt - Работа с zip фрхивами Отправлено: Alp от Июль 05, 2010, 13:18 Легко и не напряжно пишется обертка вокруг zlib, тем более, что пример есть - minizip из её же комплекта.
Если есть время - вот моё вариант, разбирайся. Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 05, 2010, 13:54 Легко и не напряжно пишется обертка вокруг zlib, тем более, что пример есть - minizip из её же комплекта. Если есть время - вот моё вариант, разбирайся. Так вы zlib оешили юзать или 7-zip? Тот пример что вы мне скинули, там pro-файла под qt нет? Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 06, 2010, 11:29 А вы под линуксом собираете или под виндами?
Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 06, 2010, 11:52 Что за проект zlibstat? Это единственный проект который скомпилился...
При попытке скомпилить minzip пишет cannot open file 'x86\ZlibDllDebug\zlibwapi.lib' Некоторые другие проекты ругаются на cannot open file '..\..\masmx86\match686.obj' Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 06, 2010, 12:23 Пара вопросов:
1. Почему при вызове команды minzip.exe -a my_file.zip appendFile.txt, если файл appendFile.txt уже есть в архиве, то их в архиве становится два? 2. Можно ли содавать поддиректории в архиве? Как? Название: Re: Qt - Работа с zip фрхивами Отправлено: dr_Begemot от Июль 06, 2010, 14:33 Легко и не напряжно пишется обертка вокруг zlib, тем более, что пример есть - minizip из её же комплекта. Если есть время - вот моё вариант, разбирайся. в Вашем примере не хватает файлов: #include "addons/PathHolder.h" #include "Unmacbin/dt/Headers.h" #include "Unmacbin/dt/Mac2Pc.h" Название: Re: Qt - Работа с zip фрхивами Отправлено: Alp от Июль 16, 2010, 12:14 Легко и не напряжно пишется обертка вокруг zlib, тем более, что пример есть - minizip из её же комплекта. Если есть время - вот моё вариант, разбирайся. Так вы zlib оешили юзать или 7-zip? Тот пример что вы мне скинули, там pro-файла под qt нет? |