检测将被修改的文件

时间:2016-02-01 03:55:09

标签: java file detect file-watcher

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

我想知道当系统访问文件进行修改时是否存在某种触发器。如果是,则适用以下规定:

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

在这种情况下,由于文件很大并且存在很多文件,因此无法对每个文件进行备份。

示例:

我有四个文件:

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

b.xml添加了新的部分。

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

3 个答案:

答案 0 :(得分:3)

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

- Jitendra

答案 1 :(得分:1)

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

答案 2 :(得分:1)

没有。您无法检测到要修改的文件。直到他们提出一个非常准确的未来预测AI系统。

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