Microsoft MVP성태의 닷넷 이야기
c# 인터넷 임시 파일 삭제 문의 [링크 복사], [링크+제목 복사],
조회: 30221
글쓴 사람
아로스 (isrule at gmail.com)
홈페이지
첨부 파일
(연관된 글이 1개 있습니다.)

안녕하세요.

c#으로 인터넷 임시 파일을 삭제할려고 하는데 진행이 되지 않아서 질문을 드립니다.

개발환경: windows8.1, visual 2013

먼저, 익스플로러상단 메뉴 도구 > 인터넷옵션 > 설정 > 파일보기 클릭해서 보이는 파일 리스트와 직접 탐색기로 찾아 들어갔을 때 파일 리스트가 틀립니다.
왜 틀릴까요?^^

c# 프로그램으로 접근했을때 인터넷옵션에서 나오는 리스트가 나오는게 아니라 탐색기로 찾아 들어갔을때 리스트가 보입니다.

탐색기로 확인되는 파일은 파일로 첨부했습니다.

제가 삭제하고 싶은건 인터넷 옵션으로 찾아 들어갔을 때 보이는 파일 리스트만 삭제를 하면됩니다.

어떻게 삭제를 하면 되는지 조언 좀 부탁드립니다.


아래 개발 소스입니다.


    class cache
    {
        static void Main(string[] args)
        {
            new cache().clearIECache();
        }

        public void clearIECache()
        {
            ClearFolder(new DirectoryInfo(Environment.GetFolderPath(System.Environment.SpecialFolder.InternetCache)));
        }

        public void ClearFolder(DirectoryInfo folder)
        {
            foreach(FileInfo file in folder.GetFiles())
            {
                try
                {
                    file.Delete();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message.ToString());
                }
                finally
                { }
    
            }
                         
            foreach(DirectoryInfo subfilder in folder.GetDirectories())
            {
                ClearFolder(subfilder);
            }

        }
    }


[연관 글]






[최초 등록일: ]
[최종 수정일: 7/28/2014]


비밀번호

댓글 작성자
 



2014-07-28 12시01분
"Tools" / "Internet Options" 메뉴를 실행해 "General" 탭의 "Settings" 버튼을 눌러 나오는 "Current location:"의 위치가 제 경우에 다음과 같습니다.

c:\users\[사용자 계정]\AppData\Local\Microsoft\Windows\INetCache

그런데, Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) 코드로 얻은 경로도 그와 동일합니다. 어떻게 다른지 혹시 더 설명을 해주실 수 있을까요?
정성태
2014-07-29 01시30분
[아로스] 답변 감사합니다.

화면 캡쳐해서 올렸습니다.

http://aroskr.tistory.com/123

2가지 이미지 모두 c:\users\[사용자 계정]\AppData\Local\Microsoft\Windows\INetCache 경로인데
확인되는 파일 리스트는 틀립니다.

접근 방법이 틀린 차이점이 있지만 접근 방법이 틀리다고 파일 리스트가 다르게 보이는건 이해가 안가는 부분입니다.

프로그램으로 해당 디렉토리로 접근해서 파일리스트를 확인하면 탐색기로 접근했을 때 파일 리스트가 확인됩니다.

저는 익스플로러상단 메뉴 도구 > 인터넷옵션 > 설정 > 파일보기 클릭해서 보이는 파일 모두 삭제하고 싶거든요.

답변 부탁드립니다.^^
[guest]
2014-07-29 02시07분
[ryujh] 안녕하세요. 홈페이지에 가서 캡쳐화면을 보니까
탐색기로 직접접근시 Virtualized 폴더가 보이네요. 이 폴더가 아마도 IE에서 옵션으로 접근시 뜨는 폴더와 관련이 있을 것으로 봅니다.


이것과는 다른 예이지만

C:\users\<사용자 계정>\AppData\Local\VirtualStore\ 가 있는데 이것이 탐색기에서는 C:\ 로 인식하는 경우가 있습니다.

즉 C:\Program Files\... 이렇게 프로그램이나 설정파일이 존재한다면 C:\users\<사용자 계정>\AppData\Local\VirtualStore\Program Files\... 이렇다는 것입니다.

C# 프로그램을 실행한 계정과 IE를 실행한 계정이 폴더 접근이 다르다고 생각할 수 있을 것입니다.

http: //www.symantec.com/connect/articles/folder-virtualization-concepts-windows-vista

관련된 글 링크입니다. 읽지는 않았지만 이런 것도 있다는 것을 알려드립니다.

감사합니다.


[guest]
2014-07-29 02시22분
[ryujh] 안녕하세요. 추가로 알려드리자면 화면 캡쳐에서 IE 통해서 본것과 직접 탐색기에서 본것이 있는데

직접 탐색기에서 본것에서 Content.IE5 하위폴더가 여러개 있으며 그곳에 IE 통해서 본 파일들이 분산되어있습니다.

실제 C#에서 삭제하려면 Content.IE5 하위폴더를 삭제해보십시오.



[guest]
2014-07-29 03시59분
INetCache는 이런 경우 특수한 뷰를 가지고 있습니다. 이 뷰는 desktop.ini 파일 덕분인데요. 아마도 위의 닷넷 코드를 실행하면서 desktop.ini 파일이 INetCache에서 삭제되었기 때문에 탐색기에서 그런 식으로 보이는 것 같습니다. 근데 이상하군요. 제가 테스트 해보니까 IE의 "Internet Options" 메뉴를 통해 보게 되면 다시 자동으로 desktop.ini가 생성되기 때문에 그 이후로는 문제가 없습니다.

어쨌든, 일단 cmd.exe 창을 띄워서 c:\users\[사용자 계정]\AppData\Local\Microsoft\Windows\INetCache 경로로 이동한 다음 "dir /a" 명령을 통해 desktop.ini 파일이 해당 폴더에 있는지 검삭해 보세요.

그리고, 만약 있다면 그 파일의 내용을 복사해서 덧글에 좀 올려주세요. 확인이 필요할 것 같습니다.
정성태
2014-07-30 01시07분
[아로스] 답변 감사합니다.

Virtualized, Content.IE5 두개 폴더를 직접 삭제하고 확인해보았지만 파일이 삭제되지 않았습니다.

c:\users\[사용자 계정]\AppData\Local\Microsoft\Windows\INetCache 경로에 있는 desktop.ini 파일 내용입니다.

[.ShellClassInfo]
ConfirmFileOp=0
UICLSID={7BD29E00-76C1-11CF-9DD0-00A0C9034933}






[guest]
2014-07-30 01시50분
특이한 경우군요. desktop.ini가 있는데도 INetCache가 원본 상태 그대로 탐색기에서 보여진다고 하시니. 해당 사항이 제 컴퓨터 및 테스트 컴퓨터에서는 재현이 안되는데다 웹 검색을 해봐도 딱히 그와 유사한 이야기가 없어서 더 이상 답변이 불가능합니다. 어쩔 수 없이 재현이 가능한 아로스님이 그 원인을 밝혀서 공개해 주셔야 할 것 같습니다. ^^;
정성태
2014-07-31 01시32분
[아로스]

그렇군요ㅜㅜ

해결하면 답변 올리도록 하겠습니다.^^

무더위 건강 유의하세요^^

[guest]
2014-08-13 02시55분
일단 제가 말씀드릴 수 있는 것은 이게 전부입니다. ^^

INetCache 폴더가 다르게 보이는 이유
; http://www.sysnet.pe.kr/2/0/1732

@아로스님의 결과가 기대되는 군요. ^^
정성태
2014-08-25 06시17분
[아로스]
아래 코드 실행하면 InetCache 폴더에 파일이 삭제되었습니다.

static void Main(string[] args)
{
    System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 8");
}

이 방법이 옮은지 확인 좀 부탁드립니다.^^



[guest]
2014-08-25 01시12분
아래의 URL에 잘 정리된 거 보니까,

IE-ClearingCachePermalink
; https://gist.github.com/AdilHindistan/6e48a27a1c4e9b3d813d

쓸만한 방법일 것 같습니다. ^^
정성태
2014-08-27 12시01분
[아로스] 내용 확인했습니다.

많은 도움 되었습니다.

감사합니다.^^
[guest]

... 31  32  33  34  35  36  37  38  39  40  41  42  43  [44]  45  ...
NoWriterDateCnt.TitleFile(s)
4776권오영11/11/201617402제가 이클립스를 공부중인데..이상한것을 찾았습니다.. [2]
4775이성환11/11/201621189안녕하세요. SnapsToDevicePixels 질문입니다. [5]파일 다운로드1
4774popo11/10/201617688.net SSL통신 관련 질문 드립니다. [1]
4773김상호11/4/201619936재귀함수 반복문 변환 [1]파일 다운로드1
4772자연인10/27/201620882hwpctrl을 사용하는 사이트에서 나와 브라우저를 종료하면 오류메세지가 나옵니다. [1]파일 다운로드1
4771문종훈10/18/201620981.net 소스 질문이 있습니다 [2]
4770누구게~...10/15/201617941세도나 [1]
4769spow...10/13/201616843올리시는 게시물에 '좋아요'를 선택할 수 있도록 해주세요 [3]
4768브라운10/11/201618582질문 하나만 드려도 될까요 [4]
4767암호군10/4/201623617c# aes 128 암복호화 관련 문의드립니다. [3]
4766김신철9/29/201618285Visual Studio 2015에서 .net 3.5로 c# 6.0 사용시 문제점에 대해서 궁금합니다. [1]
4765spow...9/23/201617405참조를 통해 속성의 값을 변경하고 싶을 때 우아한 코딩 방법이 있을까요? [2]
4764지현명9/22/201619114Visual Studio 2008 c#에서 추가된 솔류션의 디버깅이 안걸립니다. [2]파일 다운로드1
4763송기태9/20/201617595안녕하세요! 질문이 있어 문의드립니다! [1]파일 다운로드1
4762김신철9/20/201618839Visual Studio 2015 마이그레이션 후 빌드 및 에러 문제.. 도와주세요~ [2]
4761JH9/19/201619370WPF로 Viewbox 사용 시 폰트 크기 일정화 여부 [1]
4760초보9/18/201619725유닉스서버(HP)에서 C# 서버 프로그램 실행 가능 한지요? [1]
4759dev009/16/201621222Queue out of memory [3]
4758임기성9/12/201620242MS오피스 워드 64비트에서 32비트 COM개체 사용방법 문의 [2]
4757조영준9/7/201617791DLL 후킹과 관련해서 질문이 있습니다. [2]
4756Kim ...9/6/201619976drag&drop 관련해서 문의 드립니다. [6]
4755stel...9/4/201618608안녕하세요! 윈도우 창에 관련되서 질문입니다.! [3]
4754초보개발자8/25/201617390UWP 의 적용 범위에 대해서 어떻게 생각하십니까? [1]
4753조호찬8/23/201623105sybase 의 한글 가져오기 문의 [7]
4752타미플루8/19/201617930IIS 로그에서 time-taken이 0이 나올수 있나요? [4]
4751김민석8/16/201618117가변크기의 구조체를 SendMessage로 타 프로세스에 전송하는 방법이 있을까요? [1]
... 31  32  33  34  35  36  37  38  39  40  41  42  43  [44]  45  ...