sharpziplib压缩了要从外部解压缩的文件
本文关键字:解压缩 文件 从外部 压缩 sharpziplib | 更新日期: 2023-09-27 17:58:27
我有一个场景,我想使用SharpZipLib压缩电子邮件附件。然后,最终用户将打开附件并解压缩所附文件。
使用SharpZipLib最初压缩的文件会被其他程序轻松地为我的最终用户解压缩吗?
这取决于您如何使用SharpZipLib。使用此库压缩数据的方法不止一种。
以下是一个创建zip文件的方法示例,您可以在几乎任何支持zip的应用程序中打开该文件:
private static byte[] CreateZip(byte[] fileBytes, string fileName)
{
using (var memoryStream = new MemoryStream())
using (var zipStream = new ZipOutputStream(memoryStream))
{
var crc = new Crc32();
crc.Reset();
crc.Update(fileBytes);
var zipEntry =
new ZipEntry(fileName)
{
Crc = crc.Value,
DateTime = DateTime.Now,
Size = fileBytes.Length
};
zipStream.PutNextEntry(zipEntry);
zipStream.Write(fileBytes, 0, fileBytes.Length);
zipStream.Finish();
zipStream.Close();
return memoryStream.ToArray();
}
}
用法:
var fileBytes = File.ReadAllBytes(@"C:/1.xml");
var zipBytes = CreateZip(fileBytes, "MyFile.xml");
File.WriteAllBytes(@"C:/2.zip", zipBytes);
这种CreateZip方法针对内存中已经有字节,并且只想压缩它们并发送而不保存到磁盘的情况进行了优化。