水浒传第一章概括150字:Delphi 获取Internet缓存文件

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 13:18:42

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

 

 

需要引用

  1. WinInet  

 

  1. // 获取Internet缓存文件   
  2. function GetCacheFilePath(): TStringList;  
  3. var  
  4.   pEntryInfo: PInternetCacheEntryInfo;  
  5.   lCacheDir, lEntrySize, lLastError: Cardinal;  
  6.   bLoop: Boolean;  
  7. begin  
  8.   Result := nil;  
  9.   
  10.   // 获取缓冲区大小   
  11.   lEntrySize := 0;  
  12.   lCacheDir := FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^),  
  13.     lEntrySize);  
  14.   if lEntrySize = 0 then  
  15.     Exit;  
  16.   // 分配内存   
  17.   GetMem(pEntryInfo, lEntrySize);  
  18.   // 获取缓存文件   
  19.   lCacheDir := FindFirstUrlCacheEntry(nil, pEntryInfo^, lEntrySize);  
  20.   if lCacheDir = 0 then  
  21.   begin  
  22.     FreeMem(pEntryInfo, lEntrySize);  
  23.     Exit;  
  24.   end;  
  25.   
  26.   Result := TStringList.Create;  
  27.   
  28.   // 开始遍历   
  29.   while True do  
  30.   begin  
  31.     try  
  32.       Result.Add(string(StrPas(pEntryInfo^.lpszLocalFileName)));  
  33.     except  
  34.     end;  
  35.     // 释放内存   
  36.     FreeMem(pEntryInfo, lEntrySize);  
  37.     // 获取下一个缓冲区大小   
  38.     lEntrySize := 0;  
  39.     FindNextUrlCacheEntry(lCacheDir, TInternetCacheEntryInfo(nil^), lEntrySize);  
  40.     // 分配内存   
  41.     if GetLastError() = ERROR_INSUFFICIENT_BUFFER then  
  42.       GetMem(pEntryInfo, lEntrySize)  
  43.     else  
  44.       Break;  
  45.     // 下一个缓存文件   
  46.     FindNextUrlCacheEntry(lCacheDir, pEntryInfo^, lEntrySize);  
  47.   end;  
  48.   
  49.   // 关闭缓存   
  50.   FindCloseUrlCache(lCacheDir);  
  51.   
  52. end;