如何使用.NET清除IE的缓存(Temporary Internet Files)

简介: 如果你想写一段清除IE缓存的.NET代码,搜索互联网,你应该能发现一段这样的代码: void EmptyCacheFolder(DirectoryInfo folder) { foreach (FileInfo file in folder.

如果你想写一段清除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

相关文章
|
3月前
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
|
3月前
|
缓存 NoSQL Java
【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常
【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常
|
3月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
|
3月前
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
|
3月前
|
缓存 开发框架 .NET
看看 Asp.net core Webapi 项目如何优雅地使用内存缓存
看看 Asp.net core Webapi 项目如何优雅地使用内存缓存
101 1
|
3月前
|
存储 缓存 开发框架
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
|
缓存 开发框架 .NET
ASP.NET Core 缓存
Get新知识: 缓存相关概念:缓存的类型:总结:总的来说,私有缓存会减少网络带宽的需求,同时会减少从缓存到API的请求。因为私有缓存是存储在客户端浏览器的,对于请求来说,如果缓存还在有限期内,那么请求连网络请求都不会发出会直接在客户端浏览器获取到响应,这样就减少网络请求次数,同样也会减少API请求次数。而共享缓存不会节省缓存到API的网路带宽,但是它会减少请求到API的请求。因为共享缓存是...
51 0
ASP.NET Core 缓存
|
缓存 监控 NoSQL
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
199 0
|
存储 SQL 缓存
ASP.NET Core MVC 从入门到精通之缓存
ASP.NET Core MVC 从入门到精通之缓存
136 0
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
77 6