|
정말 산너머 산이네요.. 이 소스가 xp에서는 잘 돌아가는데
비스타나 윈7에서 돌리면 wininet.dll 특정 번지에서 access violation이 난다는..
결국 xp에서만 가능한 소스.. 윈7이나 비스타에서도 가능하게 소스를 수정할 수 있을까 심히 염려스럽습니다. ㅠㅠ
-locke
locke 님이 쓰신 글 :
: 제가 갖고있는 소스랑 아주 약간 다른데..이건 원한대로 동작하는거 같습니다.
:
: 인터넷 캐시도 잡고있는건 삭제가 안되는군요. 파일 하나만 남기고 다 지워지네요.
:
: kylix님 감사합니다.
:
: -locke
:
: kylix 님이 쓰신 글 :
: : usage:
: : procedure TForm1.Button1Click(Sender: TObject) ;
: : begin
: : DeleteIECache;
: : end;
: : }
: :
: : uses
: : WinInet;
: : procedure DeleteIECache;
: : var
: : lpEntryInfo: PInternetCacheEntryInfo;
: : hCacheDir: LongWord;
: : dwEntrySize: LongWord;
: : begin
: : dwEntrySize := 0;
: : FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize) ;
: : GetMem(lpEntryInfo, dwEntrySize) ;
: : if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
: : hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize) ;
: : if hCacheDir <> 0 then
: : begin
: : repeat
: : DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName) ;
: : FreeMem(lpEntryInfo, dwEntrySize) ;
: : dwEntrySize := 0;
: : FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize) ;
: : GetMem(lpEntryInfo, dwEntrySize) ;
: : if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
: : until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) ;
: : end;
: : FreeMem(lpEntryInfo, dwEntrySize) ;
: : FindCloseUrlCache(hCacheDir) ;
: : end;
: :
: : 출처: delphi.about.com
: :
: : locke 님이 쓰신 글 :
: : : 제 글을 잘 이해를 못하신거 같네요..
: : :
: : : 저런식으로 해서 해당 폴더를 찾아 FindFirst/FindNext로 검색을 하면 실제 탐색기에 보이는 파일들이 안보이고
: : :
: : : .
: : : ..
: : : Content.IE5
: : : Content.MSO
: : : Content.Word
: : : desktop.ini
: : : FrontPageTempDir
: : : SKBGM.cfg
: : : SKBGM0.che
: : : SKBGM1.che
: : : SKBGM2.che
: : : SKBGM3.che
: : : SKBGM4.che
: : : SKBGM5.che
: : : SKBGM6.che
: : : SKBGM7.che
: : : SKBGM8.che
: : : SKBGM9.che
: : : SQM
: : :
: : : 이런 애들이 나온다는거죠.. 그러니 어떻게 지우냐 이 질문인데..
: : : 이 파일들은 그냥 DeleteFile로 날려도 여전히 탐색기로 들어가보면
: : : 예전과 변함이 없습니다. ㅠㅠ
: : :
: : : -locke
: : :
: : : 000 님이 쓰신 글 :
: : : : String GetSpecialFolderPath(int nFolder)
: : : : {
: : : : LPITEMIDLIST piidl;
: : : : char path[MAX_PATH];
: : : : if(SHGetSpecialFolderLocation(NULL,nFolder,&piidl)!=NOERROR) return "";
: : : : SHGetPathFromIDList(piidl,path);
: : : : GlobalFree(piidl);
: : : : if(path[0]) return String(path);
: : : : else return "";
: : : : }
: : : :
: : : : 임시인터넷파일들삭제()
: : : : {
: : : : String path = GetSpecialFolderPath(CSIDL_INTERNET_CACHE);
: : : : 파일삭제(path);
: : : : }
: : : :
: : : : 디렉터리 안의 모든 파일삭제 방법에는
: : : : FindFirst / FindNext 등의 함수로 일일이 찾아서 삭제하는 방법도 있고
: : : : SHFileOperation 함수를 호출해서 일거에 삭제하는 방법도 있습니다.
: : : :
: : : :
: : : : locke 님이 쓰신 글 :
: : : : : 탐색기로 보면 쿠키파일, 이미지, js파일, php파일등등 나오는데 FindFirst/Next로 검색하면 아래처럼 나옵니다.
: : : : :
: : : : : .
: : : : : ..
: : : : : Content.IE5
: : : : : Content.MSO
: : : : : Content.Word
: : : : : desktop.ini
: : : : : FrontPageTempDir
: : : : : SKBGM.cfg
: : : : : SKBGM0.che
: : : : : SKBGM1.che
: : : : : SKBGM2.che
: : : : : SKBGM3.che
: : : : : SKBGM4.che
: : : : : SKBGM5.che
: : : : : SKBGM6.che
: : : : : SKBGM7.che
: : : : : SKBGM8.che
: : : : : SKBGM9.che
: : : : : SQM
: : : : :
: : : : : 이거 그냥 날리면 될까요? 캐시파일을 개별로 갖고있는게 아니라 저장소에 넣고 인덱싱 작업을 하는거 같은데..
: : : : :
: : : : : -locke
: : : : :
: : : : :
: : : : : locke 님이 쓰신 글 :
: : : : : : 임시 인터넷 파일 폴더(Temporary Internet Files)의 파일들을 지우고 싶습니다.
: : : : : :
: : : : : : 탐색기로 보면 파일들이 많이 나오는데 FindFirst/Next로 가져오면
: : : : : :
: : : : : : 전혀 다른 인덱스 파일 10여개만 읽어지네요.
: : : : : :
: : : : : : 아마도 다른 인덱스 방식을 뜨는거 같습니다.
: : : : : :
: : : : : : 깨끗하게 지우는 방법이 없나요?
|