我想在 C# 中编写一个方法,它需要一个字节 [] 并将其压缩到另一个字节 [],但我能找到的只是从一个目录压缩到另一个目录的库(ZipFile 库)。
是否可以只使用 .NET 平台?
我想在 C# 中编写一个方法,它需要一个字节 [] 并将其压缩到另一个字节 [],但我能找到的只是从一个目录压缩到另一个目录的库(ZipFile 库)。
是否可以只使用 .NET 平台?
是否可以只使用 .NET 平台?
当然——这正是System.IO.Compression
命名空间的用途。例如,您可以使用GZipStream
该类。使用aMemoryStream
接收压缩后的数据,之后就可以调用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
用作替代压缩形式。