springboot 监听指定文件夹下面新增、删除、修改

1,文件监听类

import cn.golaxy.jg.log.aop.SystemLogAspect;

import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;

import org.apache.commons.io.monitor.FileAlterationObserver;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import java.io.File;

/**

* @author Tastill * @version 2019/1/24 14:55

* @description FileListener

*/

public class FileListenerextends FileAlterationListenerAdaptor {

private static Loggerlogger = LoggerFactory.getLogger(SystemLogAspect.class);

/* @Autowired

FileConfigLoader fileConfigLoader;*/

/**

      * @description 启动监听

      * @param

      * @return

      * @version 2.0, 2019/1/24 15:08

      * @author Tastill*/

    @Override

    public void onStart(FileAlterationObserver observer) {

// 只允许一台服务器可以监听

      System.out.println("启动监听器:");

}

@Override

    public void onDirectoryCreate(File directory) {

logger.info("有新文件夹生成:"+directory.getName());

}

@Override

    public void onDirectoryChange(File directory) {

logger.info("有文件夹内容发生变化:"+directory.getName());

}

@Override

    public void onDirectoryDelete(File directory) {

logger.info("有文件夹被删除:"+directory.getName());

}

/**

    * @description 文件创建

    * @param

    * @return

    * @version 2.0, 2019/1/24 14:59

    * @author Tastill*/

    @Override

    public void onFileCreate(File file){

logger.info("有新文件生成:"+file.getName());

}

/**

    * @description 文件内容发生变化

    * @param

    * @return

    * @version 2.0, 2019/1/24 15:05

    * @author Tastill*/

    @Override

    public void onFileChange(File file){

logger.info("有文件被修改:"+file.getName());

}

/**

      * @description 文件被删除

      * @param

      * @return

      * @version 2.0, 2019/1/24 16:13

      * @author Tastill*/

    @Override

    public void onFileDelete(File file){

logger.info("有文件被删除:"+file.getName());

}

/**

    * @description 监听停止

    * @param

    * @return

    * @version 2.0, 2019/1/24 15:07

    * @author Tastill*/

    @Override

    public void onStop(FileAlterationObserver observer){

System.out.println("监听停止");

}

}


2,开启监听

import org.apache.commons.io.filefilter.FileFilterUtils;

import org.apache.commons.io.monitor.FileAlterationMonitor;

import org.apache.commons.io.monitor.FileAlterationObserver;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

import java.util.concurrent.TimeUnit;

/**

* @author Tastill * @version 2019/1/24 15:00

* @description FileMonitorTest

*/

@Component

public class FileMonitor {

/**

      * @description

      * @param

      * @return

      * @version 2.0, 2019/1/25 9:44

      * @author Tastill*/

    @PostConstruct

    public void initFileMonitor() {

System.out.println("----------------");

// 监控目录

        String rootDir ="D:\\Test";

// 轮询间隔 5 秒

        Integer time =10;

long interval = TimeUnit.SECONDS.toMillis(time);

// 创建一个文件观察器用于处理文件的格式,

//                        FileFilterUtils.suffixFileFilter(".txt")

        FileAlterationObserver _observer =new FileAlterationObserver(

rootDir,

FileFilterUtils.and(

FileFilterUtils.fileFileFilter()),//过滤文件格式

                null);

FileAlterationObserver observer =new FileAlterationObserver(rootDir);

observer.addListener(new FileListener());//设置文件变化监听器

//创建文件变化监听器

        FileAlterationMonitor monitor =new FileAlterationMonitor(interval, observer);

// 开始监控

        try {

monitor.start();

}catch (Exception e) {

e.printStackTrace();

}

}

}

你可能感兴趣的:(springboot 监听指定文件夹下面新增、删除、修改)