我有一个实用程序可以处理目录中的一组文件-该过程相对较慢(并且文件很多),因此我尝试仅通过处理具有“最后一个”的文件来优化该过程修改”晚于最后处理日期。
通常这很好用,但是我发现复制文件不会更改上次修改日期,因此有多种情况涉及复制文件,其中某些已更改的文件会被进程跳过,例如:
- 用户在 9:00 处理目录。
- 然后从该目录复制一个文件并对其进行修改,使其最后修改日期为 9:30
- 然后在 10:00 再次处理该目录
- 然后在 10:30 将修改后的文件复制回目录
- 最后在 11:00 再次处理目录
由于给定文件的修改日期是 9:30,并且该目录的最后处理时间是 10:00,因此不应该跳过该文件。
不幸的是,在某些情况下(例如在具有源代码控制等的协作环境中),上述情况往往发生得太频繁了。显然我的逻辑是有缺陷的——我真正需要的是“最后修改或复制”的日期。这样的事情存在吗?
如果做不到这一点,是否有另一种方法可以以合理的可靠性快速确定给定文件是否已更改?