Позволяет ли zlib распаковывать файлы с середины файла - PullRequest
7 голосов
/ 25 мая 2011

Позволяет ли zlib распаковывать файлы из середины файла?
Что я имею в виду, если я вызову inflate с потоком, который указывает на середину сжатых данных, не вызывая inflate к данным, предшествующим середине, будет ли это работать?

1 Ответ

9 голосов
/ 25 мая 2011

Копия из zlib FAQ (ударение мое):

28. Можно ли получить произвольный доступ к данным в сжатом потоке?

Нет, не без какой-либо подготовки. Если при сжатии вы периодически используете Z_FULL_FLUSH, внимательно напишите все ожидающиеданные в этих точках и хранить индекс этих мест, затем вы можете начать декомпрессию в этих точках.Вы должны быть осторожны, чтобы не использовать Z_FULL_FLUSH слишком часто, так как это может значительно ухудшить сжатие.Кроме того, вы можете отсканировать поток дефлята один раз, чтобы сгенерировать индекс, а затем использовать этот индекс для произвольного доступа.Смотрите примеры / zran.c.

...