工具类 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版权协议,转载请附上原文出处链接和本声明。