Avatar billede hugopedersen Nybegynder
06. juli 2011 - 11:01 Der er 4 kommentarer og
1 løsning

Underlig opførsel ved download

Jeg bruger URLDownloadToFile til at hente en ganske gemen tekstfil fra min hjemmeside
Det kokser nogen gange og jeg har konstateret at det er på grund af cachede filer. Kan jeg tvinge URLDownloadToFile til altid at hente nyeste fil fra nettet?
Eller findes der en nem måde til at cleare cachen på?
Avatar billede hrc Mester
06. juli 2011 - 12:20 #1
Se kommentarerne i dette link:

http://msdn.microsoft.com/en-us/library/ms775123(VS.85).aspx

("dwReserved parameter is NOT reserved!")
Avatar billede hugopedersen Nybegynder
06. juli 2011 - 12:28 #2
Aha - så skal man 'bare' lige finde ud af hvad BINDS_GETNEWESTVERSION er for en fisk :-)
Avatar billede hugopedersen Nybegynder
06. juli 2011 - 12:45 #3
Men det ser ud til at det er en parameter der bare skal sættes ind i stedet for det 0 der bliver sat ind som standard.
Men så vidt jeg kan se så har det ingen effekt bare at sætte den på.

URLDownloadToFile(nil, PChar(fCheckFull), PChar(fLocalFull), BINDF_GETNEWESTVERSION, nil)

fCheckFull og fLocalFull er absolutte filnavne på henholdsvis filen på serveren og den lokale fil.
Avatar billede hugopedersen Nybegynder
07. juli 2011 - 10:31 #4
Jeg fandt denne på nettet og den ser ud til at klare jobbet

procedure DeleteIECache;
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;
Avatar billede hugopedersen Nybegynder
19. juli 2011 - 10:37 #5
Som sagt så løste det problemet at køre den kode til at tømme cachen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester