Delphi 获取Internet缓存文件


下面是我写的一个函数,把所有的缓存文件路径添加到一个字符串列表中,直接看代码,带了注释。另外还有删除缓存等等大家自己到msdn找找。
//Delphi 获取Internet缓存文件 -- FindFirstUrlCacheEntry FindNextUrlCacheEntry
需要引用

WinInet  

// 获取Internet缓存文件
function GetCacheFilePath(): TStringList;
var
  pEntryInfo: PInternetCacheEntryInfo;
  lCacheDir, lEntrySize, lLastError: Cardinal;
  bLoop: Boolean;
begin
  Result := nil;

  // 获取缓冲区大小
  lEntrySize := 0;
  lCacheDir := FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^),
    lEntrySize);
  if lEntrySize = 0 then
    Exit;
  // 分配内存
  GetMem(pEntryInfo, lEntrySize);
  // 获取缓存文件
  lCacheDir := FindFirstUrlCacheEntry(nil, pEntryInfo^, lEntrySize);
  if lCacheDir = 0 then
  begin
    FreeMem(pEntryInfo, lEntrySize);
    Exit;
  end;

  Result := TStringList.Create;

  // 开始遍历
  while True do
  begin
    try
      Result.Add(string(StrPas(pEntryInfo^.lpszLocalFileName)));
    except
    end;
    // 释放内存
    FreeMem(pEntryInfo, lEntrySize);
    // 获取下一个缓冲区大小
    lEntrySize := 0;
    FindNextUrlCacheEntry(lCacheDir, TInternetCacheEntryInfo(nil^), lEntrySize);
    // 分配内存
    if GetLastError() = ERROR_INSUFFICIENT_BUFFER then
      GetMem(pEntryInfo, lEntrySize)
    else
      Break;
    // 下一个缓存文件
    FindNextUrlCacheEntry(lCacheDir, pEntryInfo^, lEntrySize);
  end;

  // 关闭缓存
  FindCloseUrlCache(lCacheDir);

end;

联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678