使用 Ionic.zip 从字节数组读取 zip 文件
本文关键字:zip 数组 读取 字节数 文件 字节 Ionic 使用 | 更新日期: 2023-09-27 17:57:03
我有一段代码可以解压缩字节数组:
public static byte[] Decompress(this byte[] data)
{
using (ZipFile zout = ZipFile.Read(data))
{
ZipEntry entry = zout.FirstOrDefault();
Assert.ObjectIsNotNull(entry, "Unable to find default ZIP entry");
MemoryStream zos = new MemoryStream();
entry.Extract(zos);
return zos.ToArray();
}
}
我升级到最新版本的 Ionic.zip现在出现以下错误:
无法将字节 [] 转换为字符串。
重载ZipFile.Read(byte[])
在最新版本中不再可用。
如何从字节数组中读取 zip 文件?
ZipFile.Read
方法需要文件名或流来读取,因此您需要提供一个流才能读取:
using (MemoryStream stream = new MemoryStream(data))
using (ZipFile zout = ZipFile.Read(stream))
{
// ....
您可以在 System.IO.Commpression
中使用内置的 ZipArchive
类。
using(var stream = new MemoryStream(data))
{
using(var archive = new ZipArchive(stream))
{
// Use the archive
}
}
ZipArchive
https://msdn.microsoft.com/en-us/library/hh158268(v=vs.110).aspx
MemoryStream
https://msdn.microsoft.com/en-us/library/e55f3s5k(v=vs.110).aspx
您将需要添加对System.IO.Compression
的引用,它不在mscorlib
中。