完善的Cache和Cookie清除功能应包含清除特定url相关和支持多种浏览器

此处仅讨论清除IE在系统中所有的Cache和Cookie的实现

IE的Cookie存放在大概这样一个位置"C:/Documents and Settings/Administrator/Cookies"

Cahce存放在大概这个位置"C:/Documents and Settings/Administrator/Local Settings/Temporary Internet Files","Temporary Internet Files"是一个特殊的文件夹,资源浏览器对文件夹的内容进行了包装,在命令行下用dir/a可以看到原貌

此外包装后的文件夹有类似"Cookie:xxxx/" 的文件,指向Cookies目录中的cookie文件,这是包装文件,实际上物理文件是不存在的

清除IE在系统中所有的Cache和Cookie,可以通过Shell32的33枚举出Cookie(32用于枚举Cache,但不适合用在这里,因为得到的结果象浏览器一样是经过包装的),或通过Environment.GetFolderPath获取Cache和Cookie的路径并利用Directoyr类枚举其中的文件及目录,最后使用File.Delete删除枚举到的文件

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Diagnostics; using Shell32; namespace CookieClean { class IECache { //删除Cache public static void CacheClear() { Trace.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)); DirectoryInfo folder = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)); FolderClear(folder); } //删除Cookies public static void CookiesClear() { Shell sh = new Shell32.Shell(); Folder fd = sh.NameSpace(33); //Cookies命名空间值 Cache命名空间值是32 foreach (FolderItem item in fd.Items()) { //跳过index.dat if (Path.GetFileName(item.Path).ToLower() == "index.dat") continue; File.Delete(item.Path); } } private static void FolderClear(DirectoryInfo folder) { //枚举并删除文件 foreach (FileInfo file in folder.GetFiles()) { //捕获被另一进程访问而无法删除异常 try { Trace.WriteLine(file.FullName); file.Delete(); } catch { } } //枚举目录 foreach (DirectoryInfo fd in folder.GetDirectories()) { //递归调用 FolderClear(fd); } } } }

删除文件时注意捕获异常,index.dat是不能删除的,浏览器也可能独占url相关的某些文件

要删除url相关的Cache和Cookie,需要使用wininet.dll中的cache相关api(对IE版本有一定要求),或了解系统生成url相关Cache和Cookie文件时的命名规则后命名用File.Delete,具体应用请参考相关文档

注意Cache和Cookie的关系,"Temporary Internet Files"文件夹的浏览器显示、Shell32的32命名空间及winnet.dll中的cache相关api,都能看到Cookie,通过dir/a或Environment.GetFolderPath获取Cache和Cookie的路径并利用Directoyr类枚举其中的文件及目录得到的是原始的文件组织结构

参考资料:

C# 清除Cookies
http://21lian.blog.sohu.com/116220750.html

c# 清除当前用户所有cookies
http://www.cnblogs.com/yjwgood/archive/2007/05/28/762095.html

C#投票作弊程序制作思路
http://tech.ddvip.com/2008-10/122446817279847.html

Clear Internet Explorer cache at C# Online.NET (CSharp-Online.NET)
http://en.csharp-online.net/Clear_Internet_Explorer_cache

如何在应用程序承载一个在 Visual C#.NET 中的 WebBrowser 控件时清除缓存
http://support.microsoft.com/kb/326201/zh-cn

Cache、Cookie清除相关推荐

  1. 登出(logout.jsp) - Cookie清除无效问题

    最近敲代码搞了一个登出功能,之前有做过但历史悠久,所以在开发的时候遇到个问题,一直无法解决. 就是 Cookie清除无效问题 . 先看一下错误的写法: //清除cookie: Cookie[] coo ...

  2. laravel 5.8 guzzle get 参数_Laravel速查表 Cache Cookie Request

    文档日期:2019年10月31日 链接信息见 https://learnku.com/docs/laravel-cheatsheet/5.8 Cache // Cache cache() Cache: ...

  3. WebView Cache 缓存清除

    当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹: 我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webv ...

  4. php删除文件指令,php – Symfony cache:清除命令更改文件夹所有者

    请参阅 http://symfony.com/doc/current/book/installation.html#configuration-and-setup中的"设置权限". ...

  5. 浏览器自动填充数据,Cookie清除不了?,这是因为某些浏览器设置了,自动填充账户名密码,造成cookie没有删除的假像。

    一.原因分析 1.查看Cookie是否真的被清除掉了 2.原来是浏览器设置了自动填充密码 二.代码展示: 虽然这个地方清除了,但是由于某些浏览器设置了,自动填充账户名密码,造成cookie没有删除的假 ...

  6. 清除session ,清除cookie

    清除session SysContent.getSession().invalidate(); //清除session 清除cookie //清除cookieHttpServletRequest re ...

  7. 清除缓存-Clearing Cache

    默认情况下,Chromium引擎中启用了缓存.持久性缓存数据存储在Chromium数据目录的Cache文件夹中.例如,c:\ Users \ <用户名> \ AppData \ Local ...

  8. 清除新微博Cookie

    在WBEngine.m文件里将如下方法里添加黑体部分代码,可清除Cookie,使登录后用islogin得到的标志位为更新后的标志位. - (void)deleteAuthorizeDataInKeyc ...

  9. iOS UIWebView清除缓存

    为什么80%的码农都做不了架构师?>>>    使用iOS的UIWebView会自动进行缓存,我们在开发的时候要记得清除Cookie和缓存. 在webview的关闭按钮中添加两个方法 ...

最新文章

  1. java fx配置_JavaFX系列-配置开发环境
  2. 波士顿动力机器狗学会「撒尿」!拉风狗还不上街遛一遛?
  3. 调试H3C MSR 20-20 PPPOE拨号
  4. Hibernate框架--学习笔记(中):一对多配置、多对多配置
  5. LINUX framebuffer
  6. 在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch
  7. ABP框架 v3.0 已发布!
  8. 显示播客信息-bloginfo() 函数
  9. java内存模型—先行发生原则
  10. S:date 的使用方法
  11. 阿里云工程师用机器学习破解雾霾成因
  12. [Python3] 023 面向对象 第三弹
  13. 软件设计模式学习笔记(八)
  14. 离散元pfc 岩土工程
  15. 模电实验——实验三 集成运算放大器的基本应用
  16. 触摸屏:Linux输入子系统:多点触控协议
  17. Windows11微软官方网址下载地址(2021年11月更新)
  18. 比赛记录——记录一次失败的比赛,九坤量化验证码识别大赛
  19. AI科普文章 | 语音识别准不准?—— ASR 效果评测原理与实践
  20. flutter - mixin

热门文章

  1. Regsvr32注册DLL和Regasm
  2. android 设备驱动
  3. Ruby 基础教程(第5版)
  4. Android Results API
  5. icon和文本垂直居中对齐
  6. MySQL存储过程从入门到精通
  7. JDK8安装 及 环境变量配置(新手向)
  8. golang Use of package XXX without selector
  9. Java-绝对地址与相对地址/绝对定位与相对定位
  10. 短信验证码和发送短信按钮没有反应