最近的项目中,用到了缓存文件。概括是:把从数据库里面的数据保存到缓存文件供前端访问。当缓存文件存在的时间超过四个小时的时候,删除该文件,并且生成一份新的缓存文件。我是用的是当前时间和文件的创建时间(File.GetCreationTime(filePath))做比较,当两者的时间差超过4个小时的时候就删除缓存,并且生成一份新的缓存文件。
是不是没有问题?我也是这样认为。当我开始测试的时候,没有问题。可是第二天的测试的时候发现每次都要生成一份新的缓存文件,无论时间间隔是多少。这是怎么一回事?我一看文件的属性,发现文件的“修改时间”和“访问时间”都是刚刚测试的时间,但是“创建时间”第一次生成这个文件的时间。过程中虽然每次都删除,然后创建,可是 创建时间始终没有变。
同事也做了一个实验验证了这个说法。实验内容是:现在一个文件夹里面新建一个文件(称为A),一段时间后删除,马上又新建一个同名的文件(称为B),结果B这个文件的创建时间就是A文件的创建时间。不过删除文件和第二次新建的时间间隔不要太长(我的电脑里面超过一分钟就不成了),否则,新建的B文件的创建时间就是你新建文件的时间。