java利用jnotify監視目錄變化

javapp 9年前發布 | 5K 次閱讀 Java

java本身不能直接監聽系統的文件操作事件,但可以用第三方開源軟件監控。

在這里介紹JNotify 大家可以在sourceforge上去下載。說說用法,其實真的好簡單代碼如下

1.下載成功后,把jnotify.dll放到system32下面,不然就會報錯Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnotify in java.library.path

2.寫一個類implements JNotifyListener,

public class JnotifyListener implements JNotifyListener {

    @Override
    public void fileCreated(int arg0, String arg1, String arg2) {
        System.out.println("fileCreate path:" + arg1);
        System.out.println("fileCreate name:" + arg2);
    }

    @Override
    public void fileDeleted(int arg0, String arg1, String arg2) {
        System.out.println("fileDeleted path:" + arg1);
        System.out.println("fileDeleted name :" + arg2);
    }

    @Override
    public void fileModified(int arg0, String arg1, String arg2) {
        System.out.println("fileModified path:" + arg1);
        System.out.println("fileModified name:" + arg2);
    }

    @Override
    public void fileRenamed(int arg0, String arg1, String arg2, String arg3) {
        System.out.println("fileRenamed path:" + arg1);
        System.out.println("fileRenamedname:" + arg2);
    }

}

然后寫個測試類

public class TestJnotify {

    public static void main(String[] args) throws JNotifyException {

        int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED |JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED;
        JNotify.addWatch("e:/testListener", mask, true, new JnotifyListener());
        for (;;) {    
        }
    }

}

這樣就可以實現監視目錄變化了

 本文由用戶 javapp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!