인터넷 브라우저에 직접 URL을 입력하여 파일을 다운로드 하는 동작을 하나의 API 함수 호출을 통해 구현이 가능합니다.

아래의 예시는 URL을 입력하여 로컬에 파일로 저장하는 API 함수의 사용 예시입니다.

위와 같이 로컬에 파일로 저장하는 API 함수 외에 스트림형태로 다운로드 하는 API 함수도 지원합니다.

웹상의 같은 URL에 있는 콘텐츠를 연속적으로 다운로드 할 경우 웹에서 받는것이 아닌 캐시로 부터 콘텐츠를 다운로드 받아서 웹상의 새로 갱신된 내용이 반영되지 않을 수 있습니다.
이를 방지하기 위하여 캐시파일을 모두 삭제하는 DeleteUrlCacheEntry 함수를 제공합니다.

위에 예시를 통해 소개한 API 함수를 사용하기 위해서는 아래와 같은 헤더파일 및 라이브러리 링크가 필요합니다.

위의 URLDownloadToFile와 URLOpenBlockingStream 등의 함수는 콘텐츠 다운로드가 완료될 때까지 다른 작업을 수행할 수 없습니다.
따라서 큰 사이즈의 콘텐츠를 다운로드 할때 Application의 블록 현상을 막기 위해서는 Thread를 생성하여 Thread안에서 동작하도록 구현하는것이 좋습니다.

또한 IBindStatusCallback 인터페이스를 상속받는 callback 함수를 구현하여 다운로드의 진행상황등을 파악할 수 있으며 아래의 코드 프로젝트 사이트에서 관련 예시를 참조할 수 있습니다.
http://www.codeproject.com/KB/IP/urldownload.aspx

Posted by 루시엔시엘

댓글을 달아 주세요