伙计们,我想创建一个Java程序,该程序在特定时间段(2分钟)内监视新文件(zip文件)的目录。为了确保没有进一步的更改,然后再将文件复制到目标文件夹。将文件复制到目标目录后,比较源文件和目标文件的大小(如果相同),请从源文件夹中删除该文件;文件删除后,将zip文件解压缩。
Sourcefolder/File1.zip
Destinationfolder/file1.zip
答案 0 :(得分:2)
查看Java的WatchService API,以监视目录中的更改。之后,其余的应该是基本文件IO。
观看目录的示例:
public class DirectoryWatcherExample {
public static void main(String[] args) {
WatchService watchService
= FileSystems.getDefault().newWatchService();
Path path = Paths.get(System.getProperty("user.home"));
path.register(
watchService,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey key;
while ((key = watchService.take()) != null) {
for (WatchEvent<?> event : key.pollEvents()) {
System.out.println(
"Event kind:" + event.kind()
+ ". File affected: " + event.context() + ".");
}
key.reset();
}
}
}