如何得到本机的IE缓存目录?

wushicnn 2003-05-30 02:54:37
加精
如果User将默认的IE缓存目录改到别处,能得到他改过后的路径吗?
...全文
258 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶子哟 2003-05-30
  • 打赏
  • 举报
回复
win32 internet 函数为我们提供了许多URL Cache支持函数,可以在MSDN里用Persistent URL Cache Functions找到。在这里我们只要调用如下的函数就可以实现IE临时文件的清除功能!
函数如下:
#include <wininet.h>
#include <UrlHist.h>
#include <SHLGUID.H>
#include <OBJBASE.H>

BOOL DelTempFiles()
{
BOOL bResult = FALSE;
BOOL bDone = FALSE;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL;

DWORD dwTrySize, dwEntrySize = 4096; // start buffer size
HANDLE hCacheDir = NULL;
DWORD dwError = ERROR_INSUFFICIENT_BUFFER;

do
{
switch (dwError)
{
// need a bigger buffer
case ERROR_INSUFFICIENT_BUFFER:
delete [] lpCacheEntry;
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize];
lpCacheEntry->dwStructSize = dwEntrySize;
dwTrySize = dwEntrySize;
BOOL bSuccess;
if (hCacheDir == NULL)

bSuccess = (hCacheDir
= FindFirstUrlCacheEntry(NULL, lpCacheEntry,
&dwTrySize)) != NULL;
else
bSuccess = FindNextUrlCacheEntry(hCacheDir, lpCacheEntry, &dwTrySize);

if (bSuccess)
dwError = ERROR_SUCCESS;
else
{
dwError = GetLastError();
dwEntrySize = dwTrySize; // use new size returned
}
break;

// we are done
case ERROR_NO_MORE_ITEMS:
bDone = TRUE;
bResult = TRUE;
break;

// we have got an entry
case ERROR_SUCCESS:

// don't delete cookie entry
if (!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))

DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName);

// get ready for next entry
dwTrySize = dwEntrySize;
if (FindNextUrlCacheEntry(hCacheDir, lpCacheEntry, &dwTrySize))
dwError = ERROR_SUCCESS;

else
{
dwError = GetLastError();
dwEntrySize = dwTrySize; // use new size returned
}
break;

// unknown error
default:
bDone = TRUE;
break;
}

if (bDone)
{
delete [] lpCacheEntry;
if (hCacheDir)
FindCloseUrlCache(hCacheDir);

}
} while (!bDone);
return bResult;
}
wushicnn 2003-05-30
  • 打赏
  • 举报
回复
OK,感谢
warton 2003-05-30
  • 打赏
  • 举报
回复
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\Director应该就是

不知道有没有相关的api函数!

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧