监视共享文件夹以查找更改并将其拉到数据库

时间:2014-07-04 17:46:07

标签: java database shared-directory

我有一个用户保存或修改文件的文件夹。 创建或修改文件时,我需要序列化该文件并插入数据库。

我查看了Java Watch Directory和Apache commons.io.monitor。监视目录方法会捕获每个事件,因为它与导致问题的本机文件事件通知相关联。 Stackoverflow question multiple events watch directory

监控目录的最佳方式/或其他方法是什么?

import org.apache.commons.io.monitor.*;
import java.io.*;

public class ApacheWatch2 {

public static void startApacheWatch(String path) {
    final File folder = new File(path);
    if (folder.exists()) {
        try {
            FileAlterationObserver observer = new FileAlterationObserver(folder);
            observer.addListener(new ChangeEventHandler());
            final FileAlterationMonitor monitor = new FileAlterationMonitor();
            monitor.addObserver(observer);
            monitor.start();
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
    } else {
        throw new RuntimeException("File does not exist");
    }
}

private static class ChangeEventHandler extends FileAlterationListenerAdaptor {

    @Override
    public void onFileCreate(File file) {
        //DO SERIALISATION STUFF WITH FILE
    }

    @Override
    public void onFileChange(File file) {
        //DO SERIALISATION STUFF WITH FILE
      }
}
}

1 个答案:

答案 0 :(得分:3)

我建议看看@ spring batch http://projects.spring.io/spring-batch它确实可以满足轮询目录,数据库交互的调度和编写器(以及许多其他功能)。