본문 바로가기

프로그래밍/Delphi

[Delphi] URLDownloadToFile을 이용하여 캐시 무시하고 다운로드 받기

UrlMon 유닛의

URLDownloadToFile 을 이용하여 웹상의 파일을 다운로드 받았을 경우에 로컬에 저장된 파일을 지워도 재호출 할 경우 캐시에서 읽기 때문에 갱신된 파일을 다운로드 받을 수 없다.
이때 해당 파일을 캐시에서 지워주기 위하여

WinINet 유닛에 있는 DeleteUrlCacheEntry 함수를 호출해 주면 (위 UrlDownloadToFile 전에 하거나 후에)
캐시를 무시하고 호출하는 효과를 얻을 수 있다

사용예) 파일을 다운로드 받고 다음에 캐시를 무시하고 다시 받기 위하여 해당 파일 캐시를 제거한다

URLDownloadToFile(nil, PChar(strURL), PChar(strEwiFile), 0, nil);
DeleteUrlCacheEntry(PChar(strURL));