我正在学习 BITS,我使用谷歌找到了这个来源:http ://www.rohitab.com/discuss/topic/28249-using-bits-to-downloadupload-files/
它工作正常,但下载的文件不是以指定的名称保存,而是使用一些随机文件名,例如:“BITxxxx.tmp” 蹩脚的是它保存在指定的位置但不使用指定的名称。
有人有这方面的经验吗?
我正在学习 BITS,我使用谷歌找到了这个来源:http ://www.rohitab.com/discuss/topic/28249-using-bits-to-downloadupload-files/
它工作正常,但下载的文件不是以指定的名称保存,而是使用一些随机文件名,例如:“BITxxxx.tmp” 蹩脚的是它保存在指定的位置但不使用指定的名称。
有人有这方面的经验吗?
这个问题很不清楚,但是您忘记调用 IBackgroundCopyJob::Complete() 的可能性很高。在 BITS 知道您获得了传输结果之前,文件传输不会完成。如果您在 90 天内未调用 Complete() 或 Cancel(),则会删除临时文件。
您可以通过调用 IBackgroundCopyJob::GetState() 来轮询传输状态,但这不是很实用。您可以调用 IBackgroundCopyJob::SetNotifyInterface 来请求回调,告诉您传输已完成或失败。但这也不是很实用,传输完成之前可能需要一段时间,尤其是当服务器离线或以其他方式被占用时。一个好方法是让 BITS 在完成后运行程序,使用 IBackgroundCopyJob2::SetNotifyCmdLine()。您将希望使用命令行参数至少传递 jobID,以便您可以再次获得指向该作业的接口指针。这样,传输将在重启或地震等严重事件中幸存下来。