下面是我写的一个函数,把所有的缓存文件路径添加到一个字符串列表中,直接看代码,带了注释。另外还有删除缓存等等大家自己到msdn找找。 需要引用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;