2

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

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

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

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

例子:

我有四个文件:

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

b.xml 添加了一个新部分。

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

4

3 回答 3

3

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

-- 吉滕德拉

于 2016-02-01T04:26:11.147 回答
1

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

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

于 2016-02-01T04:36:30.157 回答
1

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

于 2016-02-01T04:18:17.723 回答