sharpziplib压缩了要从外部解压缩的文件

本文关键字:解压缩 文件 从外部 压缩 sharpziplib | 更新日期: 2023-09-27 17:58:27

我有一个场景,我想使用SharpZipLib压缩电子邮件附件。然后,最终用户将打开附件并解压缩所附文件。

使用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方法针对内存中已经有字节,并且只想压缩它们并发送而不保存到磁盘的情况进行了优化。