我想用C#编写一个方法,该方法需要一个byte []并将其压缩为另一个byte [],但是我所能找到的只是从一个目录压缩到另一个目录的ZipFile库 )。

是否可以仅使用.NET平台?

===============>>#1 票数:5 已采纳

是否可以仅使用.NET平台?

当然-这正是System.IO.Compression命名空间的用途。 例如,您可以使用GZipStream类。 使用MemoryStream接收压缩的数据,然后可以随后调用ToArray

示例代码(未经测试):

public static byte[] Compress(byte[] data)
{
    using (var output = new MemoryStream())
    {
        using (var compression = new GZipStream(output, CompressionMode.Compress))
        {
            compression.Write(data, 0, data.Length);
        }
        return output.ToArray();
    }
}

public static byte[] Compress(byte[] data)
{
    using (var output = new MemoryStream())
    {
        using (var compression = new GZipStream(output, CompressionMode.Decompress))
        {
            compression.Write(data, 0, data.Length);
        }
        return output.ToArray();
    }
}

您也可以使用DeflateStream作为替代压缩形式。

  ask by stinaq translate from so

未解决问题?本站智能推荐: