1

現在、オンライン ファイルへのリンクを送信し、すべてのダウンロードの進行状況を追跡できるダウンロード マネージャー (DLManager) を作成しようとしています。通常のファイルには問題なく機能しますが、zip ファイルをダウンロードして解凍する機能を追加したいと考えていました。初期化とダウンロードという 2 つの基本的な手順で動作するようになりました。初期化プロセスは、zipInputStream を設定し、FileEntry.getName と .getSize を使用してアーカイブのファイル情報を収集します。この情報を使用して、キューの合計ダウンロード サイズと、再開されたダウンロードの以前の進行状況を計算できます。DLManager キューがリンクをアップすると、別の zipInputStream を設定し、.read メソッドを使用してファイルをディスクに出力することにより、ダウンロード ステップを開始します。

私が抱えている問題は、ファイルを初期化するときに時間がかかることです。1 つの zip ファイルを初期化するだけの時間で、3 つ以上の大きなビデオ ファイルをダウンロードできます。zipInputStream がどのように機能しているかについて混乱しています。最初にヘッダー情報をストリーミングしてから .read コマンドが残りをダウンロードするのを待っているだけですか、それともヘッダー情報を返す前に実際にアーカイブ全体をダウンロードしていますか? すべてを一度にダウンロードする場合、zipInputStream を再利用する方法はありますか (最初のエントリに戻ります)。zipInputStream のソースを読み込もうとしましたが、迷子になりました。この問題に光を当てることができる人に感謝します。ありがとう。

4

0 に答える 0