引言
关于IE缓存管理方面的资料非常少,网上虽然有部分文章介绍,也有工具下载(如搜索缓存或清除缓存等),但都不够全面和深入。
另外,IE缓存管理主要依赖几个index.dat文件和wininet库,而MSDN对wininet库的帮助非常简单,而且没有示例代码。
网上能够找到的资料大部分都是对wininet的http协议处理接口方面的介绍,对于缓存处理部分介绍的很少,加上这部分接口定义得有点晦涩,所以让人觉得有点困绕。
本文结合自己的项目经验,对IE的缓存机制,特别是wininet库中缓存管理的接口使用,提出全面深入的说明。
弄懂了wininet缓存管理接口,以后写缓存监控、缓存搜索和缓存清理等工具就非常简单了。
2. 术语定义
无。
3. IE缓存文件
3.1. IE缓存分类
IE缓存主要分为3大类:cookie、临时文件(包括未过期的资源和脱机文件)、历史记录。
这3类缓存分别都有一个索引文件,文件名为index.dat。
存放路径如下(以我的电脑为例):
缓存内容索引:C:/Documents and Settings/liyafeng/Local Settings/Temporary Internet Files/Content.IE5/index.dat
缓存cookie索引:C:/Documents and Settings/liyafeng/Cookies/index.dat
历史记录索引:C:/Documents and Settings/liyafeng/Local Settings/History/History.IE5/index.dat。
这3个index.dat文件格式被加密处理过,微软没有公开也不打算公开文件格式,这种做法被很多人指责,但是微软依然我行我素。
通过IE的internet选项清除缓存时不能删除index.dat文件,但是在磁盘清除临时文件时会删除这3个index.dat文件。
通过IE清除缓存的方法如下:
目前访问这些索引文件的唯一方法是通过wininet库的相关接口,这也是本文重点介绍的地方。
注意:缓存的临时文件被文件系统做了特殊处理,只能通过完整目录路径访问,否则无法看到,即使你显示所有文件和系统文件。
3.2. IE缓存管理的流程
流程如下:
1、 启动