删除Internet临时文件.doc
删除Internet临时文件
在IE5中,你能在"Internet Options" 属性页中删除Internet临时文件。你是
否很惊奇在你的应用程序中如何删除Internet临时文件。这里我们将说明是如
何利用WinInet APIs函数: FindFirstUrlCacheEntry, FindNextUrlCacheEntry,
DeleteUrlCacheEntry, 与FindCloseUrlCache做到这一点的。
这不是一个文档,但我已经测试了它,它能工作。工作环境为VC++ 6.0 on
Win98/NT。
#include
//
// 删除全部Internet临时文件子目录中的文件。
//
// 注释:你能够通过测试入口类型(entry type)指定什么不被删除。
// 下面的代码,cookie入口将不被删除。
// 如:[if (!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))] //
BOOL DelTempFiles()
{
BOOL bResult = FALSE;
BOOL bDone = FALSE;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL;
D
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
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;
}