如何判断文件是否已重命名?

时间:2010-12-30 16:06:28

标签: vb6 filesystems

我正在更新一些遗留代码,以便更有效地使用.ini文件进行参数存储。基本上,它一旦被读取就会在内部缓存所有设置,以便可以在不打开文件的情况下再次读取它们。在使用缓存之前,我将缓存创建时间与文件的上次修改时间进行比较,然后使用更新的文件重新创建缓存。这种方法很有效,除非用户重命名文件,因为该操作不会更新上次修改的时间。

因此,如果我将app.ini复制到app - copy.ini,请在我的计划之外修改app - copy.ini,然后删除app.ini并将副本重命名为app.ini,我的程序现在使用过时的缓存。即使我的程序删除了app.ini并清除了缓存,它也不会在重命名副本时重建缓存。该程序设计为无人值守运行很长时间,所以我想避免不断监视文件 - 只有在我需要读取参数时才检查它。

2 个答案:

答案 0 :(得分:1)

你需要的是vb6的filewatcher,你可以通过与.net互操作来尝试它或使用类似这样的东西VB6 Implementation

答案 1 :(得分:0)

对于该场景,您可以保留程序正在使用的每个.ini文件的内容的哈希值,并定期检查每个文件。如果哈希值与上次检查时的哈希值不同,那么它的内容会被更改,或者是由此重命名方案引起的不同文件。