目錄與文件監聽器

pom

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

 

代碼


import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import java.io.File;

public class FileListen extends FileAlterationListenerAdaptor {

    //文件夾創建    
    @Override
    public void onDirectoryCreate(File directory) {
        System.out.println(directory.getPath() + "文件夾被創建");

    }

    //文件夾改變
    @Override
    public void onDirectoryChange(File directory) {
        System.out.println(directory.getPath() + "文件夾被改變");
    }
    //文件夾刪除
    @Override
    public void onDirectoryDelete(File directory) {
        System.out.println(directory.getPath() + "文件夾被刪除");
    }
    //文件創建
    @Override
    public void onFileCreate(File file) {
        System.out.println(file.getPath() + "文件被創建");
    }
    //文件夾改變
    @Override
    public void onFileChange(File file) {
        System.out.println(file.getPath() + "文件被修改");
    }

    //文件刪除    
    @Override
    public void onFileDelete(File file) {
        System.out.println(file.getPath() + "文件被刪除");
    }


    public static void main(String[] args) {
        FileAlterationMonitor monitor = new FileAlterationMonitor();//監聽容器
        IOFileFilter filter = FileFilterUtils.or(FileFilterUtils.directoryFileFilter(), FileFilterUtils.fileFileFilter());//設置監聽爲文件監聽與目錄監聽
        FileAlterationObserver observer = new FileAlterationObserver(new File("D:\\desc"), filter);//創建監聽對象,傳入監聽目錄與監聽過濾器
        observer.addListener(new FileListen());//給監聽對象設置監聽內容
        monitor.addObserver(observer);//加入監聽對象到監聽更改對象容器中
        try {
            monitor.start();//開始監聽
            System.out.println("文件監聽……");
        } catch (Exception e) {
            System.out.println("監聽異常" + e.getMessage());
            e.printStackTrace();
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章