`
jsjxsy
  • 浏览: 24624 次
  • 性别: 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#应用中集成,实现清理缓存的功能,无需用户手动操作。这在自动化测试、持续集成或用户...

    C# 清理 IE 缓存文件.txt

    这种方法不仅提高了清理缓存的效率,还为用户提供了一种直观的方式来监控和管理自己的浏览器缓存。此外,本示例还展示了如何利用C#中的各种类库和技术,例如`System.IO`、正则表达式以及Windows表单,这对于初学者来...

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

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

    谷歌清理缓存插件

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

    C#文件缓存类

    7. **缓存容量限制**:根据内存资源,我们可以设定缓存的最大容量,当达到上限时,根据缓存策略自动清理旧的或不常使用的文件。 以下是一个简单的C#文件缓存类的伪代码示例: ```csharp using System; using ...

    c#Cash缓存类

    5. **缓存策略**:可能支持基于时间的过期策略,或者基于内存压力的自动清理策略。 6. **缓存依赖**:如果缓存类支持,可以定义数据依赖,如数据库或文件变化时自动更新缓存。 7. **性能监控**:提供统计信息,如...

    C#缓存线程模板

    在缓存线程模板中,可能包含了一套机制来管理缓存的生命周期,包括加载数据到缓存、检查缓存的有效性、过期策略以及清理无用的缓存项。它可能使用了诸如LRU(最近最少使用)或LFU(最不常用)等缓存替换策略来决定...

    C#缓存的使用

    4. 手动清理:在特定业务逻辑中,根据需要手动清除或替换缓存。 五、小程序示例 下面是一个简单的C#内存缓存小程序,展示了如何插入、获取和移除缓存项: ```csharp using System.Runtime.Caching; class Program...

    C#清除PC微信缓存文件小小小小小工具(含源码)

    成品路径:路径是 ‘删除微信缓存\删除微信缓存\bin\Release\删除微信缓存.exe’ IDE:Visual Studio 2019 环境:windows10 x64 GUI:winform 框架:.Net 4.0

    C# 清理 Temp 文件.txt

    ### C# 清理 Temp 文件知识点详解 #### 一、概述 在计算机系统中,临时文件(Temp Files)是程序运行过程中产生的缓存文件或中间数据文件,它们通常存储在系统的临时目录中。随着时间和软件使用的积累,这些临时...

    C# 清理垃圾文件.rar

    本压缩包文件"**C# 清理垃圾文件.rar**"包含了几个相关的C#代码示例,专门用于清理特定类型的垃圾文件,如浏览器缓存、临时文件、地址栏历史记录、Cookies以及最近打开文件的记录。 1. **C# 清理IE缓存文件** ...

    C#,IE缓存查看器(源码)

    3. **删除**:用户可以清理缓存以保护隐私,或者释放磁盘空间。这通常包括清除历史记录、cookies和其他临时互联网文件。 标签中的"IE缓存查看 复制"进一步强调了软件的主要功能点,即查看缓存内容和复制文件,这两...

    MyNopCommerce(不删,006_清理缓存)

    【标题】"MyNopCommerce(不删,006_清理缓存)"涉及的是针对开源电子商务平台NopCommerce的反向工程与优化过程,尤其是关于缓存清理的部分。NopCommerce是一个基于ASP.NET MVC技术的成熟电子商务解决方案,它利用缓存...

    c# 清除ie缓存、cookies类

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

    vs+c#+bat文件+清理系统垃圾文件

    标题中的"vs+c#+bat文件+清理系统垃圾文件"揭示了几个关键的IT知识点,主要涉及Visual Studio(VS)、C#编程语言以及批处理(BAT)脚本在系统维护中的应用。下面将对这些概念进行详细阐述。 1. **Visual Studio (VS...

    页面缓存和清除页面缓存

    因此,合理设置缓存策略、定期清理无用缓存以及监控缓存使用情况都是至关重要的。 总之,页面缓存和清除页面缓存是ASP.NET开发者必备的技能,通过C#的缓存机制,我们可以有效地提高网站的响应速度和用户体验。理解...

    C#编写的缩略图的缓存

    4. 在缓存管理方面,可能还需要考虑缓存清理策略,例如定期删除未使用的缩略图,以避免硬盘空间浪费。 5. 错误处理和异常处理也是必不可少的部分,以确保在遇到问题时能够优雅地处理,比如无法读取源文件或保存到...

Global site tag (gtag.js) - Google Analytics