Re: unzip куска данных
От: Beketata  
Дата: 06.10.11 16:38
Оценка:
Здравствуйте, Arnx, Вы писали:

A>Ситуация — есть данные в файле, часть из них запакована в gzip формате. Но когда эти данные спихивались в кучу у них у всех отрезался заголовок, который, как я понимаю, должен быть стандартным. Если был хвост, то он, отрезан тоже. Вопрос можно чем-нибудь распаковать такие данные не делая себе кучу головной боли. Код на C с использованием zlib для этого есть, но под C# его переводить — довольно проблемно. Смотрел в сторону DotNetZip, но так и не понял можно ли так сделать.

A>Т.е. фактически есть буфер byte[] и его надо раззиповать, размер после распаковки есть.

Если вы точно знаете, что данные запакованы gzip-ом, то в .NET есть для этого спец. класс DeflateStream

// buf - Это входной байтовый буфер без "заголовка" и "хвоста" с запакованными данными
// bw - Это выходной поток, куда вы распаковываете ( у меня это был BinaryWriter )

using( MemoryStream inStream = new MemoryStream( buf ) )
using( DeflateStream ds = new DeflateStream( inStream, CompressionMode.Decompress ) )
{
  ds.CopyTo( bw.BaseStream );
}


zlib — это другой стандарт сжатия.
.
.
.
Начало разное бывает ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.