[개발/vc++] 인터넷 임시파일 삭제
출처: http://blog.naver.com/ratmsma?Redirect=Log&logNo=40026347055
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;
반응형
'IT-개발,DB' 카테고리의 다른 글
[개발/VC++] Message: 'This function or variable may be unsafe. Consider using wcsncpy_s instead (0) | 2011.12.28 |
---|---|
[개발/mfc] 휴지통 용량 및 비우기 (0) | 2011.12.22 |
[개발/MFC] 초기화면 실행 전에 이미지 로딩하는 방법 (0) | 2011.12.20 |
[개발/MFC] 디폴트 입력 모드를 한글로 (0) | 2011.12.20 |
[개발/MFC] 형 변환 (0) | 2011.12.20 |
댓글