pom.xml
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
MyFileListener.java
package com.imddysc.txttocvs.filemon;
import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyFileListener extends FileAlterationListenerAdaptor {
private static final Logger logger = LoggerFactory.getLogger(MyFileListener.class);
// 文件創建
@Override
public void onFileCreate(File file) {
logger.info("[新建]:" + file.getAbsolutePath());
}
// 文件修改
@Override
public void onFileChange(File file) {
logger.info("[修改]:" + file.getAbsolutePath());
}
// 文件刪除
@Override
public void onFileDelete(File file) {
logger.info("[刪除]:" + file.getAbsolutePath());
}
// 目錄創建
@Override
public void onDirectoryCreate(File directory) {
logger.info("[新建]:" + directory.getAbsolutePath());
}
// 目錄修改
@Override
public void onDirectoryChange(File directory) {
logger.info("[修改]:" + directory.getAbsolutePath());
}
// 目錄刪除
@Override
public void onDirectoryDelete(File directory) {
logger.info("[刪除]:" + directory.getAbsolutePath());
}
@Override
public void onStart(FileAlterationObserver observer) {
super.onStart(observer);
}
@Override
public void onStop(FileAlterationObserver observer) {
super.onStop(observer);
}
}
main方法中
String rootDir = "E:\\test\\monitor";
// 創建一個文件觀察器用於處理文件的格式
// FileAlterationObserver _observer = new FileAlterationObserver(rootDir,
// FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
// FileFilterUtils.suffixFileFilter(".txt")), null);// 過濾文件格式
FileAlterationObserver observer = new FileAlterationObserver(rootDir);
observer.addListener(new MyFileListener()); // 設置文件變化監聽器
FileAlterationMonitor monitor = new FileAlterationMonitor(1000, observer);// 創建文件變化監聽器,間隔5秒
monitor.start();// 開始監控