以编程方式合并由 DotNetZip 制作的 zip 段
Programmatically merging zip segments made by DotNetZip
我在合并使用 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 文件吗?我真的不想将它们提取到内存中并再次打包,但也许这是唯一的方法。
dotnetzip 可以毫无问题地读取 segment zip 文件,你可以参考它的源代码看看它是如何将 segement 文件作为一个 zip 文件处理的,它是一个内部 class 你不能直接使用,但是它可能有线索告诉你怎么做:
http://dotnetzip.codeplex.com/SourceControl/latest#Zip/ZipSegmentedStream.cs
我在合并使用 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 文件吗?我真的不想将它们提取到内存中并再次打包,但也许这是唯一的方法。
dotnetzip 可以毫无问题地读取 segment zip 文件,你可以参考它的源代码看看它是如何将 segement 文件作为一个 zip 文件处理的,它是一个内部 class 你不能直接使用,但是它可能有线索告诉你怎么做:
http://dotnetzip.codeplex.com/SourceControl/latest#Zip/ZipSegmentedStream.cs