FileAlterationMonitor监听目录下文件变化

工具类 FileMonitor

package com.ncs.wavtrans.utils;

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

import java.io.File;

public class FileMonitor {
    FileAlterationMonitor monitor = null;

    public FileMonitor(long interval) throws Exception{
        monitor = new FileAlterationMonitor(interval);
    }

    public void monitor(String path,String threadName,FileAlterationListener listener) {
        //创建观察者
        FileAlterationObserver observer = new FileAlterationObserver(new File(path));
        monitor.addObserver(observer);
        //monitor.setThreadFactory(new BasicThreadFactory.Builder().namingPattern(threadName).daemon(false).build());
        observer.addListener(listener);
    }
    public void stop() throws Exception{
        monitor.stop();
    }
    public void start() throws Exception{
        monitor.start();
    }
}

文件监听类

package com.ncs.wavtrans.utils;

import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;

/**
 * @Description 文件监听类
 */
public class FileListener implements FileAlterationListener {
	//日志
    private static Logger logger = LoggerFactory.getLogger(FileAlterationListener.class);

    /**
     * 轮询开始
     *
     * @param fileAlterationObserver
     */
    @Override
    public void onStart(FileAlterationObserver fileAlterationObserver) {

    }

    /**
     * 目录创建
     *
     * @param file
     */
    @Override
    public void onDirectoryCreate(File file) {

    }

    /**
     * 目录修改
     *
     * @param file
     */
    @Override
    public void onDirectoryChange(File file) {

    }

    /**
     * 目录删除
     *
     * @param file
     */
    @Override
    public void onDirectoryDelete(File file) {

    }

    /**
     * 文件创建执行
     *
     * @param file
     */
    @Override
    public void onFileCreate(File file) {

    }

    /**
     * 文件修改
     *
     * @param file
     */
    @Override
    public void onFileChange(File file) {

    }

    /**
     * 文件创建删除
     *
     * @param file
     */
    @Override
    public void onFileDelete(File file) {

    }

    /**
     * 轮询结束
     *
     * @param fileAlterationObserver
     */
    @Override
    public void onStop(FileAlterationObserver fileAlterationObserver) {

    }
}

创建文件目录监视器 (包括该目录下所有的子目录)

					//监测的局点路径
					String listener = "E:/user/aaa/";
					FileMonitor m = null;
		            try {
		            	// new FileMonitor(10);  参数为监控间隔时间
		                m = new FileMonitor(10);
		            } catch (Exception e) {
		                logger.error("【监听文件】创建监听对象异常:\n", e);
		            }
		            //监控的文件创建操作
		            m.monitor(listener, juDian, new FileListener() {
		                @Override
		                public void onFileCreate(File file) {
		                	// 获取文件名称
		                	String fileName = file.getName();
		                	// 获取文件目录
							String filePath = file.getParent();
						}
		            });

版权声明:本文为m0_46880465原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。