Microsoft MVP성태의 닷넷 이야기
c# 인터넷 임시 파일 삭제 문의 [링크 복사], [링크+제목 복사]
조회: 23287
글쓴 사람
아로스 (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)
490510/25/20178308watermark 관련문의 [1]
4903Ho10/25/20178711간단한 서버를 구현해 보고 싶습니다. [2]
4902황재승10/22/20179745C# 7.1 프로그래밍 왕초보자도 이해할 수 있는 수준인가요? [1]
4901김레오10/17/201714445c# 프로그램 난독화 도구인 confuserex라는 도구를 사용하다 여쭙습니다. [2]
4900황준범10/12/201710200ClickOnce 배포관련 질문드립니다. [1]
4899Ques...9/28/201712620C# 프로그램이 "응답 없음" 시에도 계속 독립적으로 돌아가는 타이머 생성법 [3]
4898ssdrm9/27/20179403Clickonce 실행시 보안에 막힙니다 ㅠ [1]
4897김태진9/23/20179588윈도우7 작업관리자의 상세(details)탭 생성에 대해 여쭙습니다. [1]
4896장진국9/19/201710931안녕하세요 WPF 에서 Window객체가 가비지 콜렉션에 의해 수집되지 않는거 같아서 문의드립니다. [1]
4895Ques...9/18/201710575Generic 에 관하여 질문드립니다. [5]
4894얼마전6...9/14/201712449C# 7.1에서 보강된 부분만 PDF로 제공하는 건 아니되나요? [2]
4893BigII9/14/201711496타 언어(JAVA, PHP 등)에서 받은 RSA 개인키 문자열을 이용하여 내용 복호화 가능 여부 [4]
4892Ques...9/13/201710534서브 폼에서는 무거운 작업을해도 속도가 빠를까요 ?? [1]
4891윤현수9/11/201711181Taskbar에 관한 질문입니다. [5]
4890제발9/11/20179699 시작하세요! C# 6.0 프로그래밍 책이 절판됐나요? [5]파일 다운로드1
4889낙낙이9/7/20179142안녕하세요! xsl관련 이야기입니다. [1]
4888heyh...9/6/20178967클릭원스를 수동으로 배포 시 업데이트 할 때 [1]
4887이경현9/4/20179532Windows server 2012 파일 없어짐 현상... [1]
4886질문자9/1/201711394disconnecteditem에 대하여 아시나요? [4]파일 다운로드1
4883솔솔8/30/20179881dataview에서 select한 index 가져오기 [1]
4882user8/30/201712554UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ?? [7]
4884user8/31/20179171    답변글 [답변]: UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ??파일 다운로드1
4881kmi8/30/20179364진행속도가 중간에 더뎌지는 문제가 있는데 해결할 수 있는 방법이 있나 궁금합니다. [3]
4880김호종8/29/20179779HTTP JSON POST 관련 질문 드립니다. [1]
4879aos8/27/20179961DateTime 표시할 때 포맷 설정시 밀리초까지 포함하는 법이 궁금합니다 [1]
4878heyh...8/25/201710036프로세스의 프로세스 찾기(?) [2]
... 31  32  33  34  35  36  37  [38]  39  40  41  42  43  44  45  ...