我有一个要求,我需要验证我用来由我的 java 应用程序创建的目录的修改。
用户可以通过创建文件并删除文件或修改来修改目录,因此我只想验证特定目录是否已修改。
我的解决方案:我需要一个包含最后修改时间的哈希,并且每次我必须通过我的哈希匹配目录的最后修改时间。
但是我的技术人员反对有很多技巧和库,以便用户可以修改其上次修改时间。
所以告诉我,请交替使用它。
我有一个要求,我需要验证我用来由我的 java 应用程序创建的目录的修改。
用户可以通过创建文件并删除文件或修改来修改目录,因此我只想验证特定目录是否已修改。
我的解决方案:我需要一个包含最后修改时间的哈希,并且每次我必须通过我的哈希匹配目录的最后修改时间。
但是我的技术人员反对有很多技巧和库,以便用户可以修改其上次修改时间。
所以告诉我,请交替使用它。
使用 java 7 手表服务 api
for (;;) {
WatchKey key;
try {
key = watcher.take();
} catch (InterruptedException x) {
return;
}
for (WatchEvent<?> event: key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
if (kind == OVERFLOW) {
continue;
}
WatchEvent<Path> ev = (WatchEvent<Path>)event;
Path filename = ev.context();
try {
Path child = dir.resolve(filename);
if (!Files.probeContentType(child).equals("text/plain")) {
System.err.format("New file '%s'" +
" is not a plain text file.%n", filename);
continue;
}
} catch (IOException x) {
System.err.println(x);
continue;
}
System.out.format("Emailing file %s%n", filename);
}
boolean valid = key.reset();
if (!valid) {
break;
}
}