참고자료 : http://support.microsoft.com/default.aspx?scid=kb%3Bko%3B262110
WinInet API FindFirstURLCacheEntry()로 첫번째 캐시 항목을 찾고
FindNextUrlCacheEntry()로 캐시 전체를 나열.
DeleteUrlCacheGroup()로 각 항목 삭제
->얘들은 explorer 5이상만 사용->오류 방지
우선 wininet.lib 파일을 Link 해 주시구요.
다음 소스 코드를 참고해 주세요.
GetUrlCacheEntryInfo(..)
FindFirstUrlCacheEntry(..)
DeleteUrlCacheEntry(..)
참조
#include <wininet.h>
// 지우고 싶지 않은 파일을 명시할 수 있습니다.
// 다음 코드에서는 쿠키 파일을 삭제하지 않습니다.
// [see if (!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))]
//
BOOL DelTempFiles()
{
BOOL bResult = FALSE;
BOOL bDone = FALSE;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL;
DWORD dwTrySize, dwEntrySize = 4096; // 시작 버퍼 크기
HANDLE hCacheDir = NULL;
DWORD dwError = ERROR_INSUFFICIENT_BUFFER;
do
{
switch (dwError)
{
// 좀더 큰 버퍼가 필요하다.
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; // 새 버퍼 크기
}
break;
// 작업 완료
case ERROR_NO_MORE_ITEMS:
bDone = TRUE;
bResult = TRUE;
break;
// 엔트리 확보
case ERROR_SUCCESS:
// 쿠키 파일 삭제 금지->쿠키 최적화에서는 !만 빼면 되겠네..
if (!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))
DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName);
// 다음 엔트리 얻기
dwTrySize = dwEntrySize;
if (FindNextUrlCacheEntry(hCacheDir, lpCacheEntry, &dwTrySize))
dwError = ERROR_SUCCESS;
else
{
dwError = GetLastError();
dwEntrySize = dwTrySize; // 새로운 사이즈
}
break;
// 에러
default:
bDone = TRUE;
break;
}
if (bDone)
{
delete [] lpCacheEntry;
if (hCacheDir)
FindCloseUrlCache(hCacheDir);
}
} while (!bDone);
return bResult;
'C & C++ > MFC Network' 카테고리의 다른 글
[IP] Lan Card 정보 추출 (0) | 2011.04.18 |
---|---|
[IP] IE BHO 전용 브라우져 시 새창 띄울때 IE모양 바꾸기~ (0) | 2011.04.18 |
[IP] Web Page 다운로드 (0) | 2011.04.14 |
[IP] 자신의 IP 얻어오기 (0) | 2011.03.27 |
[IP] 웹 프로토콜(HTTP)을 이용한 파일 가져오기 (0) | 2011.01.26 |
댓글