UrlDownloadToFile ???
Estou utilizando a função UrlDownloadToFile, mas apos fazer o download do arquivo, quando tento baixar um novo aqruivo acaba baixando o anterio o mesmo . Provavelmente o arquivo fica preso no Cache, alguém sabe se tem como liberar, para que sempre que eu realizar o dowload ele baixe o arquivo novo e não o antigo.
Desde já agradeço.
Desde já agradeço.
Semchance
Curtidas 0
Respostas
Marcelo_mileris
24/08/2006
Olá, eu passei por esse mesmo problema e uma solução que eu encontrei foi usar uma função para limpar o cache.
Ao terminar o Download eu chamo ela.
// 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;
Ao terminar o Download eu chamo ela.
GOSTEI 0
Semchance
24/08/2006
Valeu..... Marcelo vou fazer os testes...
GOSTEI 0
Emir Neto
24/08/2006
Não sei se precisa declarar alguma unit no USES ou algo parecido, mas aqui não funcionou. Dá erro em trechos do código que não deixam nem sequer compilar. Se alguém souber como corrigira... agradeço.
GOSTEI 0
Vinicius Granada
24/08/2006
Ola Emir Neto, a funcao do marcelo está funcionando bem, basta declarar a uses "wininet".
GOSTEI 0