一、.zip压缩格式(System.IO.Compression.ZipArchive)
1.压缩文件
List<(MemoryStream, string)> ZipList = new List<(MemoryStream, string)>();
ZipList.Add((new MemoryStream(bytes_1), fileName1));
ZipList.Add((new MemoryStream(bytes_2), fileName2));
//压缩文件
MemoryStream zipStream = new MemoryStream();
System.IO.Compression.ZipArchive zipArchive = new System.IO.Compression.ZipArchive(zipStream, System.IO.Compression.ZipArchiveMode.Create, true);
foreach (var ms in ZipList)
{
System.IO.Compression.ZipArchiveEntry entry = zipArchive.CreateEntry(ms.Item2);
using (Stream entryStream = entry.Open())
{
ms.Item1.Seek(0, SeekOrigin.Begin);
ms.Item1.CopyTo(entryStream);
}
}
2.可能遇到的问题-"解压提示文件末端错误"
解决方法:
zipArchive.Dispose();//释放资源
zipStream.Seek(0, SeekOrigin.Begin); // 重置zipStream的位置
zipStream.Flush();//确保数据写入 清空缓冲区