0

BITS について学んでいます。Google を使用してこのソースを見つけました: http://www.rohitab.com/discuss/topic/28249-using-bits-to-downloadupload-files/

それは正常に動作しますが、ダウンロードされたファイルは指定された名前ではなく、「BITxxxx.tmp」のようなランダムなファイル名で保存されます。

誰でもこれを経験していますか?

4

1 に答える 1

3

質問はかなり不明確ですが、IBackgroundCopyJob::Complete() を呼び出すのを忘れている可能性が高いです。転送の結果が得られたことを BITS が認識するまで、ファイル転送は確定されません。90 日以内に Complete() または Cancel() を呼び出さない場合、一時ファイルは削除されます。

IBackgroundCopyJob::GetState() を呼び出して転送状態をポーリングできますが、これはあまり実用的ではありません。IBackgroundCopyJob::SetNotifyInterface を呼び出して、転送が完了したか失敗したかを知らせるコールバックを要求できます。しかし、これもあまり実用的ではありません。転送が完了するまでに時間がかかることがあります。特に、サーバーがオフラインであるか、占有されている場合はそうです。これを行う良い方法は、完了時にプログラムを実行するよう BITS に指示することです。IBackgroundCopyJob2::SetNotifyCmdLine() を使用します。コマンド ライン引数を使用して、少なくともジョブ ID を渡し、ジョブへのインターフェイス ポインターを再度取得できるようにする必要があります。このようにして、転送は再起動や地震などのひどいものに耐えます.

于 2012-06-03T17:20:10.643 に答える