【发布时间】:2019-11-06 23:36:05
【问题描述】:
我正在寻找一种简单的方法来检测重新启动之间目录中的文件是否已更改,以避免不必要的同步。在 java 8 库中执行此操作的最简单方法是什么?我应该对每个文件的 md5 摘要进行异或,还是对每个文件的校验和进行异或?
我们不需要处理进入子目录的 ATM。
此外,我们不应该使用操作系统事件来检测此更改,因为检测方法只会在启动时调用。目录中的文件数量可以在不同版本的应用程序之间改变,但这些文件通常不会在重新启动之间改变。
这看起来像是一篇相关的帖子: https://crypto.stackexchange.com/questions/1368/is-it-a-good-idea-to-use-bitwise-xor-on-a-set-of-md5-sums
【问题讨论】:
-
@LyjuIEdwinson 谢谢,但我特别不希望通过操作系统事件检测文件更改,因为此例程只会在系统启动时触发。
-
“避免不必要的同步”究竟是什么意思?您是否将文件镜像到另一个目录?那么也许你最好只使用 rsync 而不是自己滚动。
-
@Axel 特定于我们的应用程序,当这些文件被修改时,我们需要将控制器重新同步到我们的数据库,这个过程需要一段时间。基本上有一个大文件正在通过 xinclude 语句重构为较小的 xml 文件,现在我想动态检测这些较小的文件是否已被修改,而不是在代码中维护文件列表。我们之前只是缓存了我们大文件的 md5 副本。
-
@simgineer 您应该仔细阅读文件通知,因为它不仅在系统启动时触发。