DotNetZip Library从一个zip压缩到另一个zip

时间:2012-01-29 18:00:11

标签: c# .net zip

使用DotNetZip库(http://dotnetzip.codeplex.com/)有没有办法将文件从一个zip文件移动到另一个zip文件而不先将该文件解压缩到磁盘?也许提取到一个流,然后从同一个流更新到另一个zip?

zip文件受密码保护,这些zip文件中的数据由于其许可证而保持这种状态。如果我先简单地提取到磁盘然后更新另一个zip,那么用户可能会截获这些文件。

1 个答案:

答案 0 :(得分:3)

是的,你应该可以做类似的事情;

var ms = new MemoryStream();

using (ZipFile zip = ZipFile.Read(sourceZipFile))
{
    zip.Extract("NameOfEntryInArchive.doc", ms);
}

ms.Seek(0);

using (ZipFile zip = new ZipFile())
{
    zip.AddEntry("NameOfEntryInArchive.doc", ms);
    zip.Save(zipToCreate);
}

(因为我没有机会编译,因此将其视为伪代码)

当然,您必须将解密/加密添加到其中,但这些调用同样直截了当。