2012-06-03 2 views
-1

을 저장, 내가 구글을 사용하여이 소스를 발견 http://www.rohitab.com/discuss/topic/28249-using-bits-to-downloadupload-files/백그라운드 인텔리전트 전송 서비스는 내가 BITS에 대해 배우고 파일 이름

그것은 잘 작동하지만, 다운로드 한 파일이 지정된 이름으로하지만, 어떤 임의의 파일 이름 등으로 저장되지 않습니다 : "BITxxxx.tmp" 절름발이는 지정된 위치에 저장되지만 지정된 이름은 사용하지 않는 것입니다.

누구나이 경험이 있습니까?

답변

2

질문이 꽤 명확하지 않지만 확률이 높아서 IBackgroundCopyJob :: Complete()를 호출하는 것을 잊어 버리는 경우가 많습니다. BITS가 전송 결과를 얻었음을 알 때까지 파일 전송이 완료되지 않습니다. 90 일 이내에 Complete() 또는 Cancel()을 호출하지 않으면 임시 파일이 삭제됩니다.

IBackgroundCopyJob :: GetState()를 호출하여 전송 상태를 폴링 할 수 있지만 그다지 실용적이지 않습니다. IBackgroundCopyJob :: SetNotifyInterface를 호출하여 전송이 완료되었거나 실패했음을 알리는 콜백을 요청할 수 있습니다. 그러나 이는 전송이 완료되기 전에, 특히 서버가 오프라인 상태이거나 다른 방식으로 점유되어있는 경우에는 시간이 오래 걸릴 수 있습니다. 이를 수행하는 좋은 방법은 완료시 프로그램을 실행하도록 BITS에 요청하는 것입니다. IBackgroundCopyJob2 :: SetNotifyCmdLine()을 사용하십시오. jobID를 전달하기 위해 명령 행 인수를 사용하여 작업에 대한 인터페이스 포인터를 다시 얻을 수 있습니다. 이렇게하면 재부팅이나 지진과 같은 거친 작업에서도 전송이 유지됩니다.

관련 문제