文件变化监听类:
package com.xjiuge.crawl.util;
import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* 文件变化监听器
* @author xhc
*
*/
public class FileListener implements FileAlterationListener {
FileMonitor monitor = null;
@Override
public void onStart(FileAlterationObserver observer) {
System.out.println("onStart");
}
@Override
public void onDirectoryCreate(File directory) {
//System.out.println("onDirectoryCreate:" + directory.getName());
}
@Override
public void onDirectoryChange(File directory) {
System.out.println("onDirectoryChange:" + directory.getName());
}
@Override
public void onDirectoryDelete(File directory) {
//System.out.println("onDirectoryDelete:" + directory.getName());
}
@Override
public void onFileCreate(File file) {
System.out.println("onFileCreate:" + file.getName());
}
@Override
public void onFileChange(File file) {
System.out.println("onFileCreate : " + file.getName());
}
@Override
public void onFileDelete(File file) {
System.out.println("onFileDelete :" + file.getName());
}
@Override
public void onStop(FileAlterationObserver observer) {
System.out.println("onStop");
}
}
测试类:
package com.xjiuge.crawl.util;
import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* 测试类
* @author xhc
*
*/
public class FileMonitor {
FileAlterationMonitor monitor = null;
public FileMonitor(long interval) throws Exception {
monitor = new FileAlterationMonitor(interval);
}
/**
* 给文件添加监听
* @param path
* @param listener
*/
public void monitor(String path, FileAlterationListener listener) {
FileAlterationObserver observer = new FileAlterationObserver(new File(path));
monitor.addObserver(observer);
observer.addListener(listener);
}
public void stop() throws Exception {
monitor.stop();
}
public void start() throws Exception {
monitor.start();
}
public static void main(String[] args) throws Exception {
//初始化监听
FileMonitor m = new FileMonitor(1000);//设置监控的间隔时间
//指定文件夹,添加监听
m.monitor("C:\\Users\\xhc\\Desktop\\新建文件夹 (2)", new FileListener());
//开启监听
m.start();
}
}
打印结果:
onStart
...
onFileCreate:151205_123443_00002052_1.jpg
...
onStop