2009-08-03 3 views
6

Я работаю над коммерческим проектом, который требует, чтобы несколько файлов были упакованы (упакованы) в архив, а затем сжаты. Сейчас у нас есть zlib в нашей библиотеке утилиты, но не похоже, что zlib имеет функцию сжатия нескольких файлов в один архив. Кто-нибудь знает о бесплатных библиотеках, которые я мог бы использовать для этого?C/C++ Упаковка и сжатие

ответ

7

Возможно, libtar? Также под лицензией BSD.

+0

Похоже, что libtar является хорошим решением для этого проекта. Спасибо всем за ваши быстрые ответы. – Justin

3

Вы можете использовать libzip - он под лицензией BSD, поэтому он должен использоваться в коммерческом проекте.

2

Чтобы сжать несколько файлов в один почтовый архив можно использовать Zipios++

12

7Zip имеет full SDK для нескольких языков, включая C и C++. Сжатие очень хорошее, хотя и не очень быстрое. Код лицензирован под LGPL.

+0

7Zip также имеет достойную поддержку шифрования AES. –

+2

Лично я фанат 7Zip, но LGPL может вызвать проблемы в этой ситуации. – Justin

+0

Часть LZMA SDK 7-Zip находится в общественном достоянии, поэтому LGPL не относится. Если вы хотите использовать все функции 7-Zip (а не только LZMA), то сам 7-Zip находится под LGPL, но это не проблема для коммерческих приложений, если вы оставите его в DLL, включите копию LGPL в вашем дистрибутиве и предоставить источник по запросу. –

-1

Также посмотрите на bzip2.

+0

bzip2 не может сжимать несколько файлов в архив. Обычно вы используете tar для объединения всех ваших файлов в один, прежде чем давать ему bzip. –