maven依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
FileListener.java
import java.io.File;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* @author qushen
* @create 2023/2/27 11:08
*/
@Slf4j
public class FileListener extends FileAlterationListenerAdaptor {
/**
* 文件创建执行
*/
@Override
public void onFileCreate(File file) {
log.info("[新建]:" + file.getAbsolutePath());
}
/**
* 文件创建修改
*/
@Override
public void onFileChange(File file) {
log.info("[修改]:" + file.getAbsolutePath());
}
/**
* 文件删除
*/
@Override
public void onFileDelete(File file) {
log.info("[删除]:" + file.getAbsolutePath());
}
/**
* 目录创建
*/
@Override
public void onDirectoryCreate(File directory) {
log.info("[新建]:" + directory.getAbsolutePath());
}
/**
* 目录修改
*/
@Override
public void onDirectoryChange(File directory) {
log.info("[修改]:" + directory.getAbsolutePath());
}
/**
* 目录删除
*/
@Override
public void onDirectoryDelete(File directory) {
log.info("[删除]:" + directory.getAbsolutePath());
}
@Override
public void onStart(FileAlterationObserver observer) {
// TODO Auto-generated method stub
super.onStart(observer);
}
@Override
public void onStop(FileAlterationObserver observer) {
// TODO Auto-generated method stub
super.onStop(observer);
}
}
StartListener.java
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* @author qushen
* @create 2023/2/27 11:46
*/
public class StartListener {
public static void main(String[] args) {
// 轮询间隔 5 秒
long interval = TimeUnit.SECONDS.toMillis(5);
//不使用过滤器,使用过滤器时创建FileAlterationObserver对象时传入第二个参数FileFilter
FileAlterationObserver observer = new FileAlterationObserver(new File("D:\\SwsSoftware\\yikong\\test\\LirePicture\\src\\main\\resources\\static\\images"));
FileListener fileListener = new FileListener();
observer.addListener(fileListener);
//创建文件变化监听器
FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
// 开始监控
try {
monitor.start();
}catch (Exception e){}
}
}