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