Windows上的filemtime()的已知问题 – 文件被任意地触动?

是否有一个已知问题导致Windows XP SP 3上的caching文件的文件修改时间得到任意更新,但没有任何实际更改?

是否有一个标准的Windows XP上的服务 – 备份,同步,版本控制,病毒扫描仪 – 已知的触摸文件? 他们都有一个.txt扩展名。

如果没有,忘记它。 然后,我的caching例程中出现错误,我将debugging我的方式。

背景:

我正在Windows服务器上的一个缓慢的网站上构build一个简单的caching包装器。

我将filemtime()时间戳与数据库中的某些列进行比较,以确定caching文件是否过时。

我有问题使用这种方法,因为caching文件的修改时间似乎在操作之间更新, 而不需要我做任何事情 。 这导致陈旧的文件被显示。

我是机器上唯一的用户。 操作系统是Windows XP,Web服务器是PHP 5.2的XAMPP Apache 2

您可以在计算机上设置日志记录 *以查明正在更改文件的内容。 从您的描述中我经常会遇到这种情况,所以您可能会发现ProcessMonitor ( 德语 )是更好的监控解决方案。

*我想你也可以使用机载工具设置日志记录,只是不知道如何

我能想到的唯一的mtime问题是可怕的DST错误 。 这听起来不像你所得到的。

当然,还有其他的Windows工具可能会修改背后的文件,但通常是用户级别的东西,如WMP与ID3标签搞砸,或者狡猾的AV …没有任何我期望碰到你的缓存文件。

(也许你可以尝试m次的平等比较,而不是大于/小于,只有使用缓存,如果有一个完全匹配?这至少意味着,如果一些反社会bleeder触摸文件,它会慢你倒了一点,而不是让你陈旧的文件。FWIW这是Python与其字节码缓存。