Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: Berberis от Март 10, 2009, 09:20



Название: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 09:20
Собственно вопрос в теме поста.

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

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

- LGPL или любая другая которая может быть использована в проекте с закрытым исходным кодом


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: spirit от Март 10, 2009, 09:27
так с кьюти уже идет архиватор, QTDIR/src/3rdparty/zlib.
см. функции qCompress/qUncompress.


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

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

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

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




Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Khs от Март 10, 2009, 09:59
А что мешает самому реализовать алгоритмы сжатия данных? Правда на это уйдет намного больше времени нежели чем заюзать либу :\


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: spirit от Март 10, 2009, 10:05
а этот архиватор не подходит QuaZIP (http://quazip.sourceforge.net/index.html)


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 10:16
А что мешает самому реализовать алгоритмы сжатия данных? Правда на это уйдет намного больше времени нежели чем заюзать либу :\

Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 10:18
а этот архиватор не подходит QuaZIP (http://quazip.sourceforge.net/index.html)

Спасибо за ссылку. Нет не подходит по следующей причине: данная либа является враппером для minizip которую я уже использую в своем проекте. Фактически я и сам в проекте сделал этот враппер. minizip мне не подходит потому что она не поддерживает поддиректории в zip архивах


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: BRE от Март 10, 2009, 10:22
Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.
[offtop]
время == деньги заказчика;
мешает время == мешают деньги заказчика;
Альтруизм?
 ;)  ;D
[/offtop]


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: lex_newton от Март 10, 2009, 10:48
А что мешает взять консольный архиватор zip? зачем изобретать велосипед?
а если хочется велосипед - то можно без особого труда переработать этот же самый архиватор...

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


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 11:02
А что мешает взять консольный архиватор zip? зачем изобретать велосипед?
а если хочется велосипед - то можно без особого труда переработать этот же самый архиватор...

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

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

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

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





Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 11:03
Как вы правильно сказали мешает только время (равно деньги заказчиков) которое нужно затратить на написание.
[offtop]
время == деньги заказчика;
мешает время == мешают деньги заказчика;
Альтруизм?
 ;)  ;D
[/offtop]

Так уж повелось в некоторых развитых странах что люди каждый час считают  :)


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: lex_newton от Март 10, 2009, 11:14
Цитировать
Что имеется в виду: запускать его как процесс или переработать исходники чтобы использовать их в проекте ?
и то и другое. на выбор ;)

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

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

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


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: BRE от Март 10, 2009, 11:16
Извиняюсь за offtop.
Так уж повелось в некоторых развитых странах что люди каждый час считают  :)
Я про то, что время может мешать, а деньги заказчика - нет (в любой стране мира).  ;)


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: lex_newton от Март 10, 2009, 11:34
Berberis
может вам вот это подойдет? http://zziplib.sourceforge.net/


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 12:05


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

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

Да. Правильно вы сказали LGPL или любая другая которая может быть использована в проекте с закрытым исходным кодом


Название: Re: Посоветуйте либу для работы с zip архивами
Отправлено: Berberis от Март 10, 2009, 12:12
Berberis
может вам вот это подойдет? http://zziplib.sourceforge.net/

Спасибо, попробую. Хотел бы пояснить что я собственно ждал постов от людей которые реально юзали те либы которые они предлагают и что они могут утверждать что это действительно хорошие решения и в частности удовлетворяют тем требованиям что я написал. В приципе погуглить я бы и сам мог, но пока не нашел действительно хороших библиотек которые к тому же продолжают поддерживаться.

В любом случае спасибо народу который откликнулся за помощь