2016-12-20 2 views
1

Я пытаюсь распаковать массив байтов.C#, Decompress поток с использованием zlib

byte[] bloc = { 120, 156, 211, 97, 144, 76, 247, 142, 98, 228, 98, 0, 2, 70, 101, 6, 166, 8, 16, 131, 133, 131, 145, 129, 209, 134, 129, 133, 1, 44, 12, 4, 202, 118, 12, 0, 70, 22, 2, 148 }; 

Как вы можете видеть заголовок 120 165 (78 9с в шестнадцатеричном) ведьма является Zlib сжатия по умолчанию algorithme. Я использовал ComponentAce.Compression.ZipForge с сайта zlib. Я не мог найти примеры того, как распаковывать потоки (а не файлы).

+1

Почему бы просто не использовать встроенные потоки .NET, такие как DeflateStream и т. Д.? –

+0

Вы видели первый ответ здесь: http://www.componentace.com/help/zf_guide/zipforgefaq.htm - попробуйте создать поток памяти и перейти к методу OpenArchive – PaulF

ответ

1

Использование SharpZipLib. Он включает полный интерфейс для zlib и будет распаковывать потоки zlib, а также другие сжатые форматы данных, такие как gzip, zip, bzip2 и raw deflate.

Вам следует избегать компонентов .NET, предоставляемых Microsoft, поскольку они ошибочны (в частности, при неправильном обнаружении недопустимых данных), и Microsoft заявила, что они will not fix it.

Смежные вопросы