`
jsjxsy
  • 浏览: 23617 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#清理缓存

阅读更多

*************************
说明

*************************
由于缓存文件是特殊的文件,以及WebBrowser与IE版本有关
因此删除缓存绝对不可能用一些IO函数就总可以解决的
因此我的这些函数在IO操作的基础上,又针对环境进行相应的清理。


 static class WebCleaner
    {
        /*
         * 7 个静态函数

         * 私有函数
         * private bool FileDelete()    : 删除文件
         * private void FolderClear()   : 清除文件夹内的所有文件
         * private void RunCmd()        : 运行内部命令
         * 
         * 公有函数
         * public void CleanCookie()    : 删除Cookie
         * public void CleanHistory()   : 删除历史记录
         * public void CleanTempFiles() : 删除临时文件
         * public void CleanAll()       : 删除所有
         * 
         * 
         * 
         * */


        //private


        /// 
        /// 删除一个文件,System.IO.File.Delete()函数不可以删除只读文件,这个函数可以强行把只读文件删除。
        /// 
        /// 文件路径
        /// 是否被删除
        static bool FileDelete(string path)
        {
            //first set the File\'s ReadOnly to 0
            //if EXP, restore its Attributes

            System.IO.FileInfo file = new System.IO.FileInfo(path);
            System.IO.FileAttributes att = 0;
            bool attModified = false;

            try
            {
                //### ATT_GETnSET
                att = file.Attributes;
                file.Attributes &= (~System.IO.FileAttributes.ReadOnly);
                attModified = true;

                file.Delete();
            }
            catch (Exception e)
            {
                if (attModified)
                    file.Attributes = att;

                return false;
            }

            return true;
        }

        //public 

        /// 
        /// 清除文件夹
        /// 
        /// 文件夹路径
        static void FolderClear(string path)
        {
            System.IO.DirectoryInfo diPath = new System.IO.DirectoryInfo(path);
            foreach (System.IO.FileInfo fiCurrFile in diPath.GetFiles())
            {
                FileDelete(fiCurrFile.FullName);

            }
            foreach (System.IO.DirectoryInfo diSubFolder in diPath.GetDirectories())
            {
                FolderClear(diSubFolder.FullName); // Call recursively for all subfolders
            }
        }

        static void RunCmd(string cmd)
        {
            System.Diagnostics.Process.Start(\"cmd.exe\", \"/c \" + cmd);
        }

        /// 
        /// 删除历史记录
        /// 
        public static void CleanHistory()
        {
            string[] theFiles = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.History), \"*\", System.IO.SearchOption.AllDirectories);
            foreach (string s in theFiles)
                FileDelete(s);
            RunCmd(\"RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1\");
        }
        /// 
        /// 删除临时文件
        /// 
        public static void CleanTempFiles()
        {
            FolderClear(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache));
            RunCmd(\"RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8\");
        }
        /// 
        /// 删除Cookie
        /// 
        public static void CleanCookie()
        {
            string[] theFiles = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies), \"*\", System.IO.SearchOption.AllDirectories);
            foreach (string s in theFiles)
                FileDelete(s);
            RunCmd(\"RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2\");
        }
        /// 
        /// 删除全部
        /// 
        public static void CleanAll()
        {
            CleanHistory();
            CleanCookie();
            CleanTempFiles();
        }
    }

分享到:
评论

相关推荐

    C# 清理浏览器缓存

    调用该程序呢可以运行项目时自动清理IE缓存

    C#动态清理缓存IE6Clear

    开发C#应用程序时可以调用该程序自动清理缓存

    C# 清理 IE 缓存文件.txt

    C# 清理 IE 缓存文件.txtC# 清理 IE 缓存文件.txt

    谷歌清理缓存插件

    清理缓存是一款可以帮助用户一键清理chrome缓存垃圾,提高chrome运行速度的谷歌浏览器插件,在chrome中安装了清理缓存插件以后,用户就可以直接点击清理缓存插件按钮,即可快速地清理当前浏览器中的垃圾,而不用再...

    c#自带缓存使用方法 c#移除清理缓存

    代码如下:/// <summary>/// 获取数据缓存/// </summary>/// ”CacheKey”>键</param>public static object GetCache(string CacheKey){ System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache...

    c# 清除ie缓存、cookies类

    c# 实现清除 ie缓存 cookies 的类

    页面缓存和清除页面缓存

    asp.net,C#页面缓存和清除页面缓存

    IE缓存清理,文件监控

    本人写了个主要是用于清理在开发web程序时使用IE浏览器产生的缓存,有些缓存必须要清楚临时文件才能有效,不然有时修改的js,css文件看不到效果,然后在写这个时候加了些新的东西,新手的可以学习参考下,源文件都在...

    C#实现自动清理微信、QQ垃圾文件.zip

    C#实现自动清理微信、QQ垃圾文件 功能: 1.清理微信垃圾(视频,缓存,文件,图片等)可保留聊天记录,可自定义删除文件夹 默认清理所有微信,也可以指定微信文件夹 2.清理指定目录文件(手动添加目录) 3.可配合...

    VS项目临时文件清理工具

    删除VS项目产生的临时文件,只保留源码和工程文件,手动配置需要清理的工程路径,需要或略的文件或者文件夹,需要删除的文件或者文件夹!

    C#实现清除IE浏览器缓存的方法

    主要介绍了C#实现清除IE浏览器缓存的方法,实例分析了C#针对浏览器缓存清理所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    C#清除WebBrowser中Cookie缓存的方法

    本文实例讲述了C#清除WebBrowser中Cookie缓存的方法。分享给大家供大家参考,具体如下: 最近用C#写一个程序,用一个窗体中的WebBrowser来登陆网站,但是WebBrowser有cookie缓存,第二次登陆的时候WebBrowser仍然是...

    CacheDAL.cs

    Cache缓存设置,获取,清理。Cache缓存设置,获取,清理

    C#基类库大全下载--苏飞版

    C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的帮助类,添加Cookie,删除Cookie,修改Cookie,清理Cookie SessionHelper C#...

    C#基础类库

    C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的帮助类,添加Cookie,删除Cookie,修改Cookie,清理Cookie SessionHelper C#...

    C#微软培训资料

    第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11...

    C#基类库大全

    CookieHelper C#操作Cookie的帮助类,添加,删除,修改,清理 SessionHelper C#关于Session的操作,获取,设置,删除 SessionHelper2 C#关于Session的一些高级操作,比如取对象,取数据等等 3.CSV文件转换 CsvHelper...

    C#控制IE进程关闭和缓存清理的实现代码

    代码如下:class IEUtil { public static void openIE(string url) { try { //System.Diagnostics.Process.Start(url); System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo....

Global site tag (gtag.js) - Google Analytics