使用DotNetZip库(http://dotnetzip.codeplex.com/)有没有办法将文件从一个zip文件移动到另一个zip文件而不先将该文件解压缩到磁盘?也许提取到一个流,然后从同一个流更新到另一个zip?
zip文件受密码保护,这些zip文件中的数据由于其许可证而保持这种状态。如果我先简单地提取到磁盘然后更新另一个zip,那么用户可能会截获这些文件。
答案 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);
}
(因为我没有机会编译,因此将其视为伪代码)
当然,您必须将解密/加密添加到其中,但这些调用同样直截了当。