即时压缩使用Ionic.Zip c#

本文关键字:Zip Ionic 即时压缩 | 更新日期: 2023-09-27 18:10:04

我试图从流中创建一个zip文件,并返回一个流,我的问题是我不想在本地硬盘或内存中存储任何数据。我使用的是Ionic.Zip

        Stream output = new MemoryStream();
        using (ZipFile zip = new ZipFile())
        {
            Stream s = ftpManager.GetFileStream("/mydoc.docx");
            ZipEntry e = zip.AddEntry("Content-From-Stream.bin", s);
            e.Comment = "The content for entry in the zip file was obtained from a stream";
            //zip.AddFile("Readme.txt");
            zip.Save(output);
        }
        if (output != null)
        {
            ftpManager.Upload(output, "/MohamedTest/mydoc.zip");
        }

代码中有很多问题,

  • 首先,我使用MemoryStream,这是不可取的
  • 第二,压缩后的压缩文件为空

有什么建议

即时压缩使用Ionic.Zip c#

最可能的输出位置在压缩后被设置为流的末尾,请检查。而且,除非您将实现一些代理流(它将处理。write方法并将此数据发送到FTP),否则您需要内存/文件流来存储压缩数据。