URLDownloadToFile이 캐시에서 검색되지 않도록 하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/75432

  •  09-06-2019
  •  | 
  •  

문제

웹사이트에서 파일을 검색하기 위해 URLDownloadToFile을 사용하고 있습니다.후속 호출은 업데이트된 버전이 아닌 원본 파일을 반환합니다.캐시된 버전을 검색하고 있다고 가정합니다.

도움이 되었습니까?

해결책

URLDownloadToFile을 호출하기 직전에 동일한 URL로 DeleteUrlCacheEntry를 호출합니다.Wininet.lib에 연결해야 합니다.

다른 팁

예, 기본적으로 파일의 캐시된 버전을 가져옵니다.캐시 파일을 완전히 피하려면 urldownloadtofile ()의 lpfncb 매개 변수에서 ibindstatuscallback 객체를 전달하십시오.구현된 IBindStatusCallback::GetBindInfo() 메서드에서 BINDF_GETNEWESTVERSION 플래그를 포함하고 선택적으로 BINDF_NOWRITECACHE 플래그도 grfBINDF 매개 변수를 통해 반환하는 값에 포함합니다.캐시 파일이 있는 경우 건너뛰기 대신 업데이트되도록 하려면 BINDF_RESYNCHRONIZE 플래그를 대신 지정하십시오.

URL 끝에 무해한 쿼리 매개변수를 추가할 수 있나요?

https://stackoverflow.com/?CacheBuster=1020am

캐시 정리

// Limpa cache do Internet Explorer
procedure DeletaIECache;
var
     lpEntryInfo: PInternetCacheEntryInfo;
     hCacheDir: LongWord;
     dwEntrySize: LongWord;
begin
     dwEntrySize := 0;
     FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize) ;
     GetMem(lpEntryInfo, dwEntrySize) ;
     if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
     hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize) ;
     if hCacheDir <> 0 then
     begin
         repeat
         DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName) ;
         FreeMem(lpEntryInfo, dwEntrySize) ;
         dwEntrySize := 0;
         FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize) ;
         GetMem(lpEntryInfo, dwEntrySize) ;
         if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
         until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) ;
     end;
     FreeMem(lpEntryInfo, dwEntrySize) ;
     FindCloseUrlCache(hCacheDir) ;
end;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top