下面这个函数可以根据一个网址得到它在本地缓存的位置。我在很多与HTTP相关的程序中都使用到了。
// 根据网址得到在本地的缓存文件
CString GetCacheEntryInfo(LPCTSTR lpszUrl)
{
CString strPath;
DWORD dwEntrySize=0;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;
if (!GetUrlCacheEntryInfo(lpszUrl,NULL,&dwEntrySize))
{
if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER)
{
TRACE("GetUrlCacheEntryInfo Error:%d\n",GetLastError());
//TRACE("本地没有指定网页的缓存\n");
return _T("");
}
else
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize];
}
else
return _T(""); // should not be successful w/ NULL buffer
// and 0 size
if (!GetUrlCacheEntryInfo(lpszUrl,lpCacheEntry,&dwEntrySize))
{
//TRACE("GetUrlCacheEntryInfo Error:%d\n",GetLastError());
//TRACE("本地没有指定网页的缓存\n");
return _T("");
}
else
{
strPath = lpCacheEntry->lpszLocalFileName;
}
delete []lpCacheEntry;
return strPath;
}
|