如何使用.NET清除IE的緩衝(Temporary Internet Files)

來源:互聯網
上載者:User

如果你想寫一段清除IE緩衝的.NET代碼,搜尋互連網,你應該能發現一段這樣的代碼:

void EmptyCacheFolder(DirectoryInfo folder)
        {
            foreach (FileInfo file in folder.GetFiles())
            {
                file.Delete();
            }
 
            foreach (DirectoryInfo subfolder in folder.GetDirectories())
            {
                EmptyCacheFolder(subfolder);
            }
        }
 
 
        //Function which is used for clearing the cache
        bool ClearCache()
        {
            bool Empty;
            try
            {
                EmptyCacheFolder(new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)));
                Empty = true;
            }
 
            catch
            {
                Empty = false;
            }
 
            return Empty;
 
        }

 

但當你實際運行這段代碼是,卻發現無論如何也沒有辦法讓這段代碼穩定的運行,並且IE緩衝目錄下的檔案似乎也無法刪除,這是為什麼呢?

應為在這段代碼中,當你試圖去刪除Temporary Internet Files目錄下的檔案時,某一些檔案因為是系統檔案,或者是正在被瀏覽器使用,就會拋出IO的exception,整個foreach迴圈就會終止。

首先,我們應該把代碼放到try中,保證不會因為exception導致迴圈的終止,其次,對於有IO衝突無法刪除的檔案,應該註冊為下次啟動是自動刪除,這樣就可以保證徹底的上除IE快取檔案。

具體的代碼可以參考:

Your Internet Explorer's Secrets

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.