Russian Qt Forum
Ноябрь 22, 2024, 17:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: zip  (Прочитано 6678 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
zip
« : Декабрь 09, 2012, 12:07 »

Коллеги, что посоветуете в качестве самого легкого решения для распаковки zip-архива? Переносимое для win и linux.
Нужно только распаковать (без лишних функций).
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Декабрь 09, 2012, 21:22 »

консольная программа zip вроде есть и там и там. а так — есть в сети какой-то QZipReader кажется.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Декабрь 09, 2012, 21:25 »

А qCompress и qUncompress не зипуют? Когда то вроде читал, что это и есть алгоритм зипа?

PS мб конечно это мой бред Веселый
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #3 : Декабрь 09, 2012, 21:37 »

Цитировать
А qCompress и qUncompress не зипуют?
Нет. Это было бы славно.
Цитировать
Когда то вроде читал, что это и есть алгоритм зипа?
Да. И тем не менее, zip и zlib - разные вещи. Искал в сети решение по конвертации форматов, не нашел.

Цитировать
есть в сети какой-то QZipReader кажется
Вот я и склоняюсь к QZipReader. Этот класс включен в Qt, но недокументирован и может быть исключен в любой момент. Ладно, буду отгребать по мере поступления...
А так использовать просто - нужно только скопировать в каталог проекта qzipreader_p.h (даже не добавляя его в профайл, взять его можно из исходников) и в файле, где используется QZipReader, включить этот заголовочный файл. Недостаток в том, что разархивирование выполняется только в каталог, а хотелось бы в QByteArray.
И настораживает, что реализация находится в библиотеке libQtGui. Будет ли это работать в консольном приложении (можно ли будет подключить к нему эту либу)?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
vregess
Гость
« Ответ #4 : Декабрь 10, 2012, 07:01 »

QuaZip же. Почему никто никогда ее не вспоминает?
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #5 : Декабрь 10, 2012, 08:52 »

Я пробовал, для моей задачи слишком громоздко, к тому же, GPL. Мне всего-то нужно - получить от севера zip и распаковать. Прикручивать полноценную поддержку zip не хочется.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
fuCtor
Гость
« Ответ #6 : Декабрь 12, 2012, 18:16 »

Я пробовал, для моей задачи слишком громоздко, к тому же, GPL. Мне всего-то нужно - получить от севера zip и распаковать. Прикручивать полноценную поддержку zip не хочется.
Если не хочется брать целиком, то можно посмотреть как реализовано там и сделать свою реализацию (помнится там не сложно). Формально, думаю, все будет лицензионно чисто.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #7 : Январь 20, 2013, 17:59 »

Коллеги, по использованию QZipReader/Writer хотелось бы уточнить одну деталь.
При использовании модуля GUI, ничего не надо включать в проект - достаточно в каталог проекта положить файл qzipreader_p.h (или qzipwriter_p.h, в зависимости от того, что нужно), а в файле, где используется класс библиотеки, его включить include'ом, и все.

А вот если нужно консольное приложение (запустить гуёвое, например, cron'ом просто так не получится), тут интереснее - нужно включить в проект qzip.cpp, а рядом положить qzipreader_p.h, qzipwriter_p.h, zconf.h, zconf.h.in и zlib.h). Все очень хорошо работает под Linuxом, а в Windows приходится в заголовочных qzip...h заменять Q_GUI_EXPORT на Q_DECL_EXPORT.
Полчаса я потратил на изучение qglobal.h, но так и не понял, почему под виндами работает Q_DECL_IMPORT вместо Q_DECL_EXPORT. Может, нужно какое-нибудь макро определить? Кто подскажет?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 19.