后台智能传输服务保存文件名

时间:2012-06-03 13:46:56

标签: c++ windows com microsoft-bits

我正在学习BITS,我使用谷歌找到了这个来源:http://www.rohitab.com/discuss/topic/28249-using-bits-to-downloadupload-files/

它工作正常,但下载的文件不是使用指定的名称保存,而是使用一些随机文件名,如:“BITxxxx.tmp” Lame的意思是它保存在指定的位置但不使用指定的名称。

任何人都有这方面的经验吗?

1 个答案:

答案 0 :(得分:3)

这个问题还不清楚,但你忘记打电话给IBackgroundCopyJob :: Complete()的几率很高。在BITS知道您获得了转移结果之前,文件传输尚未最终确定。如果您在90天内未调用Complete()或Cancel(),则会删除临时文件。

您可以通过调用IBackgroundCopyJob :: GetState()来轮询传输状态,但这并不是非常实用。您可以调用IBackgroundCopyJob :: SetNotifyInterface来请求回调,告诉您传输已完成或失败。但这也不是非常实用,在传输完成之前可能需要一段时间,特别是当服务器脱机或以其他方式占用时。一个好方法是让BITS在完成后运行程序,使用IBackgroundCopyJob2 :: SetNotifyCmdLine()。您将需要使用命令行参数来至少传递jobID,以便您可以再次获取指向作业的接口指针。通过这种方式,转移将在重启或地震等重要事件中存活下来。

相关问题