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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Посоветуйте либу для работы с zip архивами  (Прочитано 10777 раз)
Berberis
Гость
« : Март 10, 2009, 09:20 »

Собственно вопрос в теме поста.

- Желательно (но не обязательно) библиотека должна быть Qt-совместимой

- Основоное требование кроссплатформенность (или хотя бы поддержка Win и Mac)

- LGPL или любая другая которая может быть использована в проекте с закрытым исходным кодом
« Последнее редактирование: Март 10, 2009, 12:16 от Berberis » Записан
spirit
Гость
« Ответ #1 : Март 10, 2009, 09:27 »

так с кьюти уже идет архиватор, QTDIR/src/3rdparty/zlib.
см. функции qCompress/qUncompress.
Записан
Berberis
Гость
« Ответ #2 : Март 10, 2009, 09:39 »

qCompress/qUncompress это АПИ для сжатия фактических данных. zip архивы отличаются наличием в них структуры. Например, zip архив может содержать структуру поддиректорий довольно высокой вложенности. Это все необходимо обрабатывать. Тоесть различать где файлы, где папки, получать иформацию о этих файлах и папках и так далее. Следующая проблема это метод сжатия. qCompress/qUncompress поддреживает только один. В zip архивах насколько я понял сжатие может быть по нескольким методам.

Что касается самой zlib, вот цитата с русскоязычного сайта (ссылка размещена на zlib.net, официального сайта zlib) посвященного работе с zlib:

Библиотека сжатия 'zlib' предоставляет функции компрессии и декомпрессии в памяти, включая проверку целостности несжатых данных. Эта версия библиотеки поддерживает только один метод сжатия (дефляцию), в последствии другие алгоритмы будут добавлены с тем же потоковым интерфейсом.

Библиотека также поддерживает чтение и запись файлов в формате gzip (.gz) с интерфейсом похожим на используемый в stdio.


« Последнее редактирование: Март 10, 2009, 09:55 от Berberis » Записан
Khs
Гость
« Ответ #3 : Март 10, 2009, 09:59 »

А что мешает самому реализовать алгоритмы сжатия данных? Правда на это уйдет намного больше времени нежели чем заюзать либу :\
Записан
spirit
Гость
« Ответ #4 : Март 10, 2009, 10:05 »

а этот архиватор не подходит QuaZIP
Записан
Berberis
Гость
« Ответ #5 : Март 10, 2009, 10:16 »

А что мешает самому реализовать алгоритмы сжатия данных? Правда на это уйдет намного больше времени нежели чем заюзать либу :\

Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.
Записан
Berberis
Гость
« Ответ #6 : Март 10, 2009, 10:18 »

а этот архиватор не подходит QuaZIP

Спасибо за ссылку. Нет не подходит по следующей причине: данная либа является враппером для minizip которую я уже использую в своем проекте. Фактически я и сам в проекте сделал этот враппер. minizip мне не подходит потому что она не поддерживает поддиректории в zip архивах
Записан
BRE
Гость
« Ответ #7 : Март 10, 2009, 10:22 »

Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.
[offtop]
время == деньги заказчика;
мешает время == мешают деньги заказчика;
Альтруизм?
 Подмигивающий  Смеющийся
[/offtop]
Записан
lex_newton
Гость
« Ответ #8 : Март 10, 2009, 10:48 »

А что мешает взять консольный архиватор zip? зачем изобретать велосипед?
а если хочется велосипед - то можно без особого труда переработать этот же самый архиватор...

т.к. на сколько я понимаю задача стоит в просто сжатии обычных файлов
Записан
Berberis
Гость
« Ответ #9 : Март 10, 2009, 11:02 »

А что мешает взять консольный архиватор zip? зачем изобретать велосипед?
а если хочется велосипед - то можно без особого труда переработать этот же самый архиватор...

т.к. на сколько я понимаю задача стоит в просто сжатии обычных файлов

Что имеется в виду: запускать его как процесс или переработать исходники чтобы использовать их в проекте ?

Если первое - то мое личное мнение что это плохое решение использовать таким образом в С++ программах. То что вы предлагаете находит хорошее применение в скриптовых языках таких как bash или python, но не в С++ программах. К тому же лицензионные ограничения могут припятствовать распространению консольной утилиты в исталляционном пакете

Если второе, опять таки лицензии + время на адаптацию



Записан
Berberis
Гость
« Ответ #10 : Март 10, 2009, 11:03 »

Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.
[offtop]
время == деньги заказчика;
мешает время == мешают деньги заказчика;
Альтруизм?
 Подмигивающий  Смеющийся
[/offtop]

Так уж повелось в некоторых развитых странах что люди каждый час считают  Улыбающийся
Записан
lex_newton
Гость
« Ответ #11 : Март 10, 2009, 11:14 »

Цитировать
Что имеется в виду: запускать его как процесс или переработать исходники чтобы использовать их в проекте ?
и то и другое. на выбор Подмигивающий

Цитировать
Если первое - то мое личное мнение что это плохое решение использовать таким образом в С++ программах. То что вы предлагаете находит хорошее применение в скриптовых языках таких как bash или python, но не в С++ программах.
а как же любая известная вам IDE ? Улыбающийся неужели она имеет встроенный компилятор или дебагер?
да и других примеров навалом.
Но использовать или нет - это уже решает сам разработчик. все от задачи зависит.

Цитировать
К тому же лицензионные ограничения могут припятствовать распространению консольной утилиты в исталляционном пакете

Если второе, опять таки лицензии + время на адаптацию
Тогда так и говорите, что вы хотите LGPL а не:
- Желательно по не коммерческой лицензии
Записан
BRE
Гость
« Ответ #12 : Март 10, 2009, 11:16 »

Извиняюсь за offtop.
Так уж повелось в некоторых развитых странах что люди каждый час считают  Улыбающийся
Я про то, что время может мешать, а деньги заказчика - нет (в любой стране мира).  Подмигивающий
Записан
lex_newton
Гость
« Ответ #13 : Март 10, 2009, 11:34 »

Berberis
может вам вот это подойдет? http://zziplib.sourceforge.net/
Записан
Berberis
Гость
« Ответ #14 : Март 10, 2009, 12:05 »



Цитировать
К тому же лицензионные ограничения могут припятствовать распространению консольной утилиты в исталляционном пакете

Если второе, опять таки лицензии + время на адаптацию
Тогда так и говорите, что вы хотите LGPL а не:
- Желательно по не коммерческой лицензии

Да. Правильно вы сказали LGPL или любая другая которая может быть использована в проекте с закрытым исходным кодом
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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