Здравствуйте, 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 — это другой стандарт сжатия.
.
.
.
Начало разное бывает ...