Minizip не имеет такой функциональности, даже не удаляет из почтового индекса. Я думаю, что стандарт zip дает возможность сделать это, но сначала его нужно будет внедрить в minizip, а затем добавить в эту оболочку. Это было больше сфокусировано на архивировании данных, особенно в памяти для внутреннего использования приложений, где целью было простое сжатие, но не было ориентировано или предназначено для использования для редактирования и изменения почтовых индексов.

ал использовать zlib 1.2.5, и я не вижу никакой процедуры для извлечения из файла zip? Я читал о приложении Minizip, часть дистрибутива.

Это то, как это должно быть сделано?

Ответы на вопрос(3)

добавив в нее некоторые необходимые функции и сделав ее более удобной для использования. Использует ли последний C ++ 11 и разработан с использованием Visual Studio 2013 (должен быть переносимым, но я не тестировал его на Unix)

Здесь есть полное описание:https://github.com/sebastiandev/zipper

Вы можете архивировать целые папки, потоки, векторы и т. д. Также хорошая функция - делать все целиком в памяти.

 Sebastian23 февр. 2016 г., 15:26
Minizip не имеет такой функциональности, даже не удаляет из почтового индекса. Я думаю, что стандарт zip дает возможность сделать это, но сначала его нужно будет внедрить в minizip, а затем добавить в эту оболочку. Это было больше сфокусировано на архивировании данных, особенно в памяти для внутреннего использования приложений, где целью было простое сжатие, но не было ориентировано или предназначено для использования для редактирования и изменения почтовых индексов.
 Wes22 февр. 2016 г., 19:58
Можно ли заменить элементы в zip-папке вашей оберткой? У меня есть случай, когда мне нужно извлечь файл из zip, внести некоторые изменения и записать его обратно в zip (перезаписывая то, что там сейчас), не перезаписывая весь zip файл. Похоже, я мог бы сначала использовать класс unzipper для извлечения и изменения файла, а затем использовать функцию add в классе zipper с тем же именем файла, чтобы перезаписать его.

http://www.zlib.net/zlib_faq.html#faq11 : 11. Может ли zlib работать с архивами .zip?

Не само собой, нет. Смотрите каталог contrib / minizip в дистрибутиве zlib.

Там нет учебника, но исходник minizip zip.c предназначен именно для ввода-вывода (то есть, предположительно, для сжатия и распаковки) для zip-файлов с использованием zlib.

И до сих пор нет учебника, НОhttp://www.winimage.com/zLibDll/minizip.html дает больше деталей.

Решение Вопроса

это хорошо. (Но если вам когда-либо не нравится код на C, вам стоит взглянуть на 7-zip SDK, в котором есть код на C ++ и C #.)

Все функции для просмотра и распаковки файлов из zip-архива находятся в:unzip.hВсе функции сжатия и добавления файлов в zip-архив находятся в:zip.h

(посмотри навно \ minizip \ unzip.h а такжевно \ minizip \ zip.h)

например декомпрессия:unzOpen() функции вашего почтового файла возвращаетunzFile

затем используйтеunzGoToFirstFile() а такжеunzGoToNextFile() на этомunzFile просмотреть все файлы в архиве.

затем вы получите информацию о файле для каждого файла сunzGetCurrentFileInfo()а именно за его размер,

обязательно позвониunzOpenCurrentFile() в какой-то момент.

и позвонитьunzReadCurrentFile() используя размер из fileinfo, получая двоичное содержимое архивного файла.

опционально, есть непрозрачная структура, которую вы можете предоставить, чтобы использовать собственную функцию ввода / вывода, но очевидно, что есть стандартная реализация win32 для доступа к файлам, так что вы можете даже не беспокоиться об этом.

PS: и не забудьте вызвать unzCloseCurrentFile ()

 reza15 янв. 2011 г., 01:44
Хорошо, я нашел функции и использую miniunzip для тестирования. Я создал файл c: \ a.zip с 7zip. Он содержит один файл. Я запускаю miniunzip -x c: \ a.zip -d c: \ reza и unzOpen2_64 не удается. Я запускаю это на Windows. Любые мысли о том, почему это так?
 kberson20 июн. 2016 г., 21:24
Эти ссылки мертвы.
 Stephane Rolland20 июн. 2016 г., 21:46
@kberson Thx за замечание. Я обновил ссылки, чтобы указать наgithub.com/madler/zlib/blob/master/contrib/minizip

Ваш ответ на вопрос