0

I am working on an existing system where data is stored in a compressed byte array in a database.

The existing data has all been compressed using GZipDotNet.dll.

I am trying to switch to using the gzip functions in System.IO.Compression.

When I use:

public static byte[] DeCompressByteArray(byte[] inArray)
{
    byte[] outStream = null;

    outStream = GZipDotNet.GZip.Uncompress(inArray);

    return outStream;
}

It works fine but:

public static byte[] DeCompressByteArray(byte[] inArray)
{
    byte[] outStream = null;

    using (var compressedStream = new MemoryStream(inArray))
    using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
    using (var resultStream = new MemoryStream())
    {
        zipStream.CopyTo(resultStream);
        outStream = resultStream.ToArray();
    }
    return outStream;
}

Gives a response of:

The magic number in GZip header is not correct. Make sure you are passing in a GZip stream

Uwe Keim
  • 39,551
  • 56
  • 175
  • 291

0 Answers0