私はTIdHTTP.Get
を使用してファイルをダウンロードしています。パラメータとして私はTFileStream
オブジェクトを渡しています。私はgetメソッドを実行すると、ダウンロードが完了する前にファイルサイズが一度に割り当てられていることに気付きました。私の質問はHow I can avoid which the TIdHTTP component allocate all the file size in the disk at once when use Get?
です。使用時にTIdHTTPコンポーネントがすべてのファイルスペースを一度に割り当てるのを避けるにはどうすればよいですか?
0
A
答えて
0
Remyがコメントで言ったように応答サイズは(Content-Lengthヘッダーメンバーから)事前にわかっていますが、Indyは常にストリームサイズ全体を事前に割り当てます。
したがって、私の頭に浮かんだディスクスペース割り当てを避ける方法は、メモリストリームを使用して、そのストリームから進行中のファイルにデータをコピーすることです。
ダウンロードしたファイルサイズ全体をディスクにあらかじめ割り当てておくと便利です。なぜならファイルをメモリストリームにダウンロードしても、ハードディスクに十分なスペースを確保しておく必要があるからです。コース自体には十分な空きメモリがあります)。メモリストリームを使用する利点は、ディスクスペースを解放する時間を得ることができることですが、それはあなたがやろうとしていることに大きく依存します。
関連する問題
- 1. HashMapに複雑なキーを使用するときに一時的な割り当てを避けるには?
- 2. jQueryを使用してボタンにパスを割り当てるにはどうすればよいですか?
- 3. 一度に5000のクエリを実行するのを避けるにはどうすればよいですか?
- 4. 割り当てプロジェクトで使用するJFXtrasライブラリをインポートするにはどうすればよいですか?
- 5. @SupressWarningsの使用を避けるにはどうすればよいですか?
- 6. 経路のgpsポイントの道路割り当てを調べるにはどうすればよいですか?
- 7. Perl grep関数を使用して変数にnull値が割り当てられないようにするにはどうすればよいですか?
- 8. 角度2のすべてのコンポーネントでカスタムパイプを使用できるようにするにはどうすればよいですか?
- 9. すべての画面で一度にナビゲーションバーを追加するにはどうすればよいですか?
- 10. Androidアプリケーションですべてのアクティビティトランジションを一度に変更するにはどうすればよいですか?
- 11. エレメントのjavascript配列と一緒にすべてのエレメントにリスナーを割り当てるにはどうすればよいですか?
- 12. テクスチャ検索を使用して列に順序付けや重み付けを割り当てるにはどうすればよいですか?
- 13. 「チーム」にバグまたは製品のバックログアイテムを割り当てるにはどうすればよいですか?
- 14. ImageクラスのインスタンスをプログラムでImageコントロールに割り当てるにはどうすればよいですか?
- 15. コンポーネントがどのパネルに属しているかを調べるにはどうすればいいですか?
- 16. 2つの値を割り当てるメソッドを抽出するにはどうすればよいですか?
- 17. Sitecore - アイテムに割り当てられたプロフィールカードを削除するにはどうすればよいですか?
- 18. 一度にjava内のすべての子(obj)のフィールドに新しい値を割り当てる方法は?
- 19. Blackberryアプリケーションにデバイスレベルのホットキーを割り当てるにはどうすればよいですか?
- 20. EntityCollectionプロパティを別のプロパティに割り当てるにはどうすればよいですか?
- 21. XSL:XML要素の値を変数に割り当てるにはどうすればよいですか?
- 22. AndroidのアクティビティにButtonを割り当てるにはどうすればよいですか?
- 23. GoogleマップV3 APIのマーカーにcss idを割り当てるにはどうすればよいですか?
- 24. AVDに1024 MB以上のRAMを割り当てるにはどうすればよいですか?
- 25. クエリを一度だけ送信し、結果をすべてのコンポーネントで利用できるようにするにはどうすればよいですか? (かなりシンプルにする必要があります)
- 26. 多型データ型に動的にメモリを割り当てるにはどうすればよいですか?
- 27. mysql変数の割り当て:どのように割り当て順序を強制するのですか?
- 28. Outlook 2007でキーボードショートカットをVBAマクロに割り当てるにはどうすればよいですか?
- 29. GPSを使用してユーザーの歩行速度を調べるにはどうすればよいですか?
- 30. EC2インスタンスに割り当てられていないエラスティックIPをすべて選択するにはどうすればよいですか?
ディスク容量が不足している場合は、何をしますか?ダウンロードの75%が失敗しますか?その事前配分は理由のためにそこにあるかもしれません。 –
@Warren - 同意する(私はこれをファイルマネージャなどで嫌う)が、十分なスペースがなく、ダウンロードプロセスの途中で解放する場合、逆の状況を想像する。また、[Content-Length](http://tinyurl.com/Content-Length)はヘッダに含めてはいけませんので、ファイルサイズはあらかじめわかっていないかもしれません。私は、この状況がインディにどのように処理されているのか確認していない。 –
@daemon:事前配分は最適化ですが、それは必要条件ではありません。 Indyのコードには、今後その機能をカスタマイズ可能にするためのTODO項目があります。そのため、最終的に発生する可能性があります。 'Content-Length'が存在しない/使用されていない場合、' TIdHTTP'は既に 'chunked'ダウンロードをサポートしています。この場合、事前割り当ては行われません。 –