2

我需要创建一个压缩文档,其中包含服务器上存在的文件。我正在使用 Ionic.Zip 来执行此操作,并且要创建一个新包(即 zip 文件),我必须具有物理文件或流的路径。我试图不创建一个将是 zip 文件的实际文件,而只是创建一个存在于内存或其他东西中的流。我怎样才能做到这一点?

4

3 回答 3

1

您可以尝试 ZipFile 类中的保存方法。它可以保存到流中试试这个。

using (MemoryStream ms = new MemoryStream())
{
 using (Ionic.Zip.ZipFile zipFile = new Ionic.Zip.ZipFile())
 {
   zipFile.AddFiles(filesToBeZipped, false, "NewFolder");//filesTobeZipped is a List<string>
   zipFile.Save(ms);
  }
}
于 2012-09-13T05:49:17.137 回答
1

使用MemoryStreamthen 创建包。

于 2012-09-13T05:34:12.963 回答
1

您需要在您创建的 ZipFile 上使用 .AddEntry 方法,指定名称和包含实际文件数据的 byte[]。

前任。

    ZipFile zipFile = new ZipFile();
    zipFile.AddEntry(file.FileName, file.FileData);

其中 file.FileName 将是条目名称(在 zip 文件中),而 file.FileData 是字节数组。

于 2013-09-05T15:45:36.403 回答