Я работаю над коммерческим проектом, который требует, чтобы несколько файлов были упакованы (упакованы) в архив, а затем сжаты. Сейчас у нас есть zlib в нашей библиотеке утилиты, но не похоже, что zlib имеет функцию сжатия нескольких файлов в один архив. Кто-нибудь знает о бесплатных библиотеках, которые я мог бы использовать для этого?C/C++ Упаковка и сжатие
ответ
Возможно, libtar? Также под лицензией BSD.
Вы можете использовать libzip - он под лицензией BSD, поэтому он должен использоваться в коммерческом проекте.
Чтобы сжать несколько файлов в один почтовый архив можно использовать Zipios++
7Zip имеет full SDK для нескольких языков, включая C и C++. Сжатие очень хорошее, хотя и не очень быстрое. Код лицензирован под LGPL.
7Zip также имеет достойную поддержку шифрования AES. –
Лично я фанат 7Zip, но LGPL может вызвать проблемы в этой ситуации. – Justin
Часть LZMA SDK 7-Zip находится в общественном достоянии, поэтому LGPL не относится. Если вы хотите использовать все функции 7-Zip (а не только LZMA), то сам 7-Zip находится под LGPL, но это не проблема для коммерческих приложений, если вы оставите его в DLL, включите копию LGPL в вашем дистрибутиве и предоставить источник по запросу. –
Также посмотрите на bzip2.
bzip2 не может сжимать несколько файлов в архив. Обычно вы используете tar для объединения всех ваших файлов в один, прежде чем давать ему bzip. –
Похоже, что libtar является хорошим решением для этого проекта. Спасибо всем за ваши быстрые ответы. – Justin