4

我使用 Java 7 比较了 2 个目录。如果 somefile.txt 存在于目录 A 中,但不存在于目录 B 中,我想区分两种情况:

  1. somefile.txt 之前在两个目录中,然后从目录 B 中删除。
  2. somefile.txt 刚刚添加到目录 A(从未在目录 B 中)

我不能使用任何监控,管理日志\历史。我也想找到独立于操作系统的解决方案。

我可以通过以某种方式比较两个文件夹的 lastModified 和 lastModified 来猜测 somefile.txt 是新的还是删除的?我觉得有一些简单的算法解决方案,但我找不到它......

帮助...

4

2 回答 2

2

您不能说该文件是 B 中的新文件还是刚从 A 中删除的文件。除非您有该文件夹及其内容的一些日志或历史记录,否则您可以将历史记录与当前状态进行比较。

在您的情况下,您只有目录的当前状态,无法猜测之前发生了什么。

于 2012-12-29T09:41:20.940 回答
1

为此,您需要确定哪个目录(A 或 B)是较新的副本,哪个是较旧的副本。也许您可以从 A 中的所有文件中获取最新的文件修改时间,将其与 B 的相同计算进行比较,然后判断哪棵树较新?然后区分 1 和 2 很容易 - 如果文件在较新的目录中但不在较旧的目录中,则创建它,否则删除。

根据您的问题,您可能希望使用文件创建时间而不是修改时间

于 2012-12-29T09:03:52.480 回答