0

私が達成しようとしているのは、アプリケーションが大きなリモートファイルを(ftpまたはhttpから)完全にダウンロードせずに抽出できるようにし、ネットワーク障害が発生した場合に抽出を再開できるようにすることです。

この例に従う

http://wiki.sharpdevelop.net/SharpZipLib-Zip-Samples.ashx#Unpack_a_zip_using_ZipInputStream_eg_for_Unseekable_input_streams_5

ファイルを抽出することはできますが、ネットワーク障害が発生した場合に抽出を再開できません。ZipInputStream.Skip(length)を使用しようとしました。ここで、「length」はローカルのダウンロード/解凍されたファイルのサイズですが、機能しないようです。次のような例外がスローされます。

タイプ'ICSharpCode.SharpZipLib.SharpZipBaseException'の最初のチャンスの例外がICSharpCode.SharpZipLib.dllの壊れた非圧縮ブロックで発生しました

何か案が?これを達成することは可能ですか?

4

1 に答える 1

0

フォーラムでSharpzlibチームから回答を得ました。

これを行うことは可能です。簡単だ。新しいZipInputStreamをインスタンス化するときは、FTP接続とFtpWebResponseによって取得されたストリームをラップする「特殊な」ストリームを渡す必要があります。

Sharpzlibチームは、これを例としてtheiwikiサイトに追加しました。最後のチュートリアルを見てください

https://github.com/icsharpcode/SharpZipLib/wiki/Zip-Samples

于 2012-09-15T16:06:36.790 に答える