我想在 C# 中编写一个方法,它接受一个字节 [] 并将其压缩到另一个字节 [],但我只能找到从一个目录压缩到另一个目录的库(ZipFile library)。
是否可以只使用 .NET 平台?
最佳答案
Is it possible to do using only the .NET platform?
当然 - 这正是 System.IO.Compression
命名空间是为了。例如,您可以使用 GZipStream
类(class)。使用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
作为替代压缩形式。
关于c# - 我想压缩一个 byte[] 并返回一个 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070733/