Чтение файлов внутри zip-архива

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Чтение файлов внутри zip-архива

Сообщение wwswowsogon »

Всем доброго времени суток!

Внезапно возникла задача читать тестовый файл, находящийся внутри обычного zip-архива, желательно без распаковки оного в отдельную папку. Возможно ли это в принципе, и если да, то каким образом? Как это реализовано в архиваторах типа WinRAR или 7zip? Возможно, они всё же скрыто разархивируют архив в какую-нибудь папку?
wavebvg
постоялец
Сообщения: 355
Зарегистрирован: 28.02.2008 03:57:35

Сообщение wavebvg »

Возможно.
Посмотрите на модули ziputils, unzip. zlib В зависимостях.
В атачменте набросок из старого проекта как пример работы, но, на мой взгляд, если такой вопрос у Вас возник, то проще воспользоваться чем-то вроде ZipForge (но он стоит денег).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось wavebvg 31.03.2022 16:33:53, всего редактировалось 1 раз.
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

Емнип TUnZipper из модуля Zipper умел извлекать из архива отдельные файлы.
Скорее всего его можно даже уговорить извлечь файл в TMemoryStream, если конечно, то чем предполагается читать файл умеет загружаться из потока.
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Сообщение wwswowsogon »

Спасибо за ответы, будем думать.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

wwswowsogon писал(а):Как это реализовано в архиваторах типа WinRAR или 7zip? Возможно, они всё же скрыто разархивируют архив в какую-нибудь папку?

Архиваторы не читают в память, они всегда в Temp скидывают, иначе программа которая должна работать с файлом не сможет открыть его.
Ответить