LINUX.ORG.RU

c++ обёртка над zlip

 , ,


1

3

Подскажите какую ни будь обёртку над zlib, инкапсулирующую низкоуровневую работу с архивами во что-то более похожее на работу с обычными файлами фс. Нужна возможность создать архив, добавить в него файл и писать в файл поток данных; открыть архив, получить список файлов и работать с каждым как с обычным несжатым потоком байтов.

★★★★★

нет такой

cpp zip library/header

Ищу нормальную либу для работы с zip для c++11

все с++ обертки они обертки над minizip или libzip

https://github.com/ctabin/libzippp это единственная в которую что-то комитят.

если найдешь обертку над miniz не трогай ее, у miniz больше проблем чем преимуществ, типа там zip64, unicode, etc.

libzip единственная живая библиотека на Си, у которой есть deflate, bzip2, lzma, zstd сжатия.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 2)

по сути все это реализуется самим с libzip но там же сишечка, придется обмазываться аллокацией / освобождением памяти и использовать типа unique_ptr

std::unique_ptr<zip_file, decltype(&zip_fclose)> zipFile (zip_fopen(archive, entry.toUtf8().constData(), 0), &zip_fclose);

bhfq ★★★★★
()
Ответ на: комментарий от xaizek

А, действительно. Я использовал только стримы и свой велосипедик для tar.

Правда, не уточнил, какие именно архивы нужны (хоть по логике действительно только zip подходит).

WitcherGeralt ★★
()
Ответ на: комментарий от xaizek

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

anonymous
()

Ну раз уж Boost советуют, посоветую надстройку над QtCore: QuaZip. Да, если проект не кутешный, не подойдёт.

hobbit ★★★★★
()
25 декабря 2020 г.

Воспользовался https://github.com/kuba--/zip, чистый си, не плюсы, но (по крайней мере) не вырвиглазный API.

thunar ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.