1

我正在尝试从流创建一个 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 并不可取
  • 二、压缩文件压缩后为空

有什么建议么

4

1 回答 1

1

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

于 2013-04-18T15:26:47.363 回答