@aymeshkov

c# GzipStream распаковывать поток только если он действительно запакован

Вообщем вопрос не очевидный на первый взгляд.

Что у нас имеется:

Есть поток inputStream.
Мы знаем что он возможно запакован gzip'ом. А возможно нет.

Что требуется:

Требуется прочитать этот поток, при необходимости распаковав.
Если просто обернуть его в GzipStream, то он рухнет с ошибкой «The magic number in GZip header is not correct».

В чем загвоздка:

Нельзя просто вычитать поток в byte[], а потом играться с этим массивом, так как стоят жесткие ограничения по скорости работы.
Есть у кого-нибудь предложения как это сделать?
  • Вопрос задан
  • 3424 просмотра
Решения вопроса 1
eternals
@eternals
Навскидку: сделать поток-обёртку, который будет magic проверять и далее пропускать или не пропускать через GZipStream.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
kekekeks
@kekekeks
Эцсамое, суть в том, что даже если magic совпадёт, есть вероятность, что внутри ни разу не гзип.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы