2017-02-22 20 views
0

DotNetZipライブラリを使用して作成したZIPセグメントのマージに問題があります。DotNetZipで作成されたジップセグメントをプログラムでマージする

私は大きなファイルを圧縮しています。これは、abc.zip、abc.z01、abc.z02のようなファイルを生成します。

using (ZipFile zip = new ZipFile()) 
{ 
    zip.AddDirectory(fullDir); 
    zip.MaxOutputSegmentSize = 65536; 
    zip.Save(packageFullName); 

    return zip.NumberOfSegmentsForMostRecentSave; 
} 

他のサービスでは、これらのファイルをダウンロードして1つのzipファイルにマージする必要があります。私はバイト配列をマージするだけでこれを作った。残念ながら、私が作成したアーカイブは有効ではないというエラーが出ています。

私のアプローチが正しくない理由はわかりません。私はこのスタックの質問を見つけました:https://superuser.com/questions/15935/how-do-i-reassemble-a-zip-file-that-has-been-emailed-in-multiple-parts - 受け入れられた答えはまた、無効なアーカイブを生成します。

いくつかのDotNetZipファイルをどのようにマージできますか?私は実際にそれらをメモリに入れてパックし直したいとは思っていませんが、唯一の方法かもしれません。

答えて

1

dotnetzipは、セグメントzipファイルを問題なく読み取ることができます。ソースコードを参照すると、セグメンテーションファイルを1つのzipファイルとして扱うことができます。その内部クラスを直接使用することはできませんが、あなたはそれを行う方法:

http://dotnetzip.codeplex.com/SourceControl/latest#Zip/ZipSegmentedStream.cs

関連する問題