检测将被修改的文件

Detect a file that will be modified

我有一个大目录,其中包含由独立系统以不同时间间隔修改的文件。我是这个目录的观察者 运行 来检测哪些文件被修改了。

我想知道当系统访问文件进行修改时是否会发生某种触发器。如果是这样,以下内容将适用:

使用Java,是否可以检测到哪些文件将要被修改并在此之前进行临时备份?
或者,是否可以将新修改的文​​件与其以前的版本进行比较?

在这种情况下,由于文件很大而且数量很多,不可能对每个文件都进行备份。

示例:

我有四个文件:

a.xml
b.xml
c.xml
d.log

b.xml 添加了新的部分。

是否可以将新创建​​的部分复制到d.log?

你怎么知道文件是否要被修改?系统处理所有文件 IO。您可以这样做的唯一方法是让进行修改的程序触发备份,然后进行修改。为了比较,这取决于你想要什么。如果你想要逐行比较,使用 Java 的文件 IO 类 应该相当简单。如果你只想检查它们是否相同,你可以对两个文件使用校验和。

我能想到一种可能解决您的问题的方法。 “维护一个跟踪每个文件的 lastModified 日期的日志文件,您可以使用您的日志文件验证哪个文件已被修改。

-- 吉腾德拉

没有。您无法检测到将被修改的文件。直到他们想出一个高度准确的未来预测人工智能系统。

最好的方法是维护文件的版本备份。我将从研究一些源代码管理系统设计注意事项开始。