PHP's 'gzuncompress' function in C#?


PHP's 'gzuncompress' function in C#?

PHP的'gzuncompress'函数在c# ?c#中是否有类似php gzuncompress的功能?

您将使用GZipStream读取数据。如果源本身是Stream,这尤其方便,但如果您有byte[],只需使用new MemoryStream(existingData):

private static byte[] GZipUncompress(byte[] data)
{
    using(var input = new MemoryStream(data))
    using(var gzip = new GZipStream(input, CompressionMode.Decompress))
    using(var output = new MemoryStream())
    {
        gzip.CopyTo(output);
        return output.ToArray();
    }
}

也:

private static byte[] GZipCompress(byte[] data)
{
    using(var input = new MemoryStream(data))
    using (var output = new MemoryStream())
    {
        using (var gzip = new GZipStream(output, CompressionMode.Compress, true))
        {
            input.CopyTo(gzip); 
        }
        return output.ToArray();
    }
}

还请注意,"充气"/"deflate"方法将是类似的,但使用DeflateStream

请注意,为了方便,我在这里只使用byte[]方法;您通常应该更喜欢基于Stream的API,因为它可以更方便地扩展到大数据。