扫描目录以查找新文件,然后将文件复制到新位置并删除源文件

时间:2019-02-28 16:53:30

标签: java

伙计们,我想创建一个Java程序,该程序在特定时间段(2分钟)内监视新文件(zip文件)的目录。为了确保没有进一步的更改,然后再将文件复制到目标文件夹。将文件复制到目标目录后,比较源文件和目标文件的大小(如果相同),请从源文件夹中删除该文件;文件删除后,将zip文件解压缩。

Sourcefolder/File1.zip
Destinationfolder/file1.zip

1 个答案:

答案 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();
        }
    }
}

来源:https://www.baeldung.com/java-nio2-watchservice