首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要从外部解压的sharpziplib压缩文件

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

Stack Overflow用户
提问于 2011-06-03 09:17:41
回答 1查看 822关注 0票数 2

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

最初使用SharpZipLib压缩的文件是否可以由其他程序轻松地为最终用户解压缩?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-03 09:30:32

这取决于您如何使用SharpZipLib。使用该库压缩数据的方法不止一种。

下面是创建zip文件方法示例,您几乎可以在任何支持zip的应用程序中打开该文件:

代码语言:javascript
复制
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();
    }
}

用法:

代码语言:javascript
复制
var fileBytes = File.ReadAllBytes(@"C:/1.xml");

var zipBytes = CreateZip(fileBytes, "MyFile.xml");

File.WriteAllBytes(@"C:/2.zip", zipBytes);

此CreateZip方法针对以下情况进行了优化:内存中已有字节,而您只想压缩它们并发送,甚至不保存到磁盘。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6222064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档