完善的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删除枚举到的文件
删除文件时注意捕获异常,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