我在合并使用DotNetZip库制作的zip段时遇到问题。
我正在压缩大文件,它会生成如下文件:abc.zip,abc.z01和abc.z02。
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(fullDir);
zip.MaxOutputSegmentSize = 65536;
zip.Save(packageFullName);
return zip.NumberOfSegmentsForMostRecentSave;
}
在其他服务中,我想下载这些文件并将它们合并到一个zip文件中。我通过简单地合并他们的字节数组来实现这一点。可悲的是,我收到错误,我创建的档案无效。
我不确定为什么我的方法不对。我发现了这个堆栈问题:https://superuser.com/questions/15935/how-do-i-reassemble-a-zip-file-that-has-been-emailed-in-multiple-parts - 接受的答案也会产生无效的存档。
有谁知道如何合并一些DotNetZip文件?我真的不想在内存中提取它们并再次打包,但也许这是唯一的方法。
答案 0 :(得分:1)
dotnetzip可以毫无问题地读取段zip文件,你可以参考它的源代码来看看它如何处理segement文件作为一个zip文件,它是一个你不能直接使用的内部类,但它可能有一个线索告诉你如何做到这一点:
http://dotnetzip.codeplex.com/SourceControl/latest#Zip/ZipSegmentedStream.cs