zoukankan      html  css  js  c++  java
  • JNotify的监测文件变化的简单测试例子

    一、理由

    使用JNotify监测的更全面,更快速。

    二、参考代码

    import net.contentobjects.jnotify.JNotify;
    import net.contentobjects.jnotify.JNotifyException;
    import net.contentobjects.jnotify.JNotifyListener;
    
    public class Main implements JNotifyListener {
        public static void main(String[] args) throws JNotifyException, InterruptedException {
            // path to watch
            String path = "/weatherdata";
            System.out.println(System.getProperty("java.library.path"));
    
            // watch mask, specify events you care about,
            // or JNotify.FILE_ANY for all events.
            int mask = JNotify.FILE_CREATED
                    | JNotify.FILE_DELETED
                    | JNotify.FILE_MODIFIED
                    | JNotify.FILE_RENAMED;
    
    
            // watch subtree?
            boolean watchSubtree = true;
    
    
            // add actual watch
            int watchID = JNotify.addWatch(path, mask, watchSubtree, new Main());
    
    
            // sleep a little, the application will exit if you
            // don't (watching is asynchronous), depending on your
            // application, this may not be required
            Thread.sleep(1000000);
    
    
            // to remove watch the watch
            boolean res = JNotify.removeWatch(watchID);
        }
    
        int count = 0;
    
        @Override
        public void fileCreated(int i, String s, String s1) {
            System.out.println("fileCreated s=" + i + " i=" + s + " s1=" + s1);
        }
    
        @Override
        public void fileDeleted(int i, String s, String s1) {
            System.out.println("fileDeleted s=" + s + " i=" + i + " s1=" + s1);
        }
    
        @Override
        public void fileModified(int i, String s, String s1) {
            System.out.println("fileModified s=" + s + " i=" + i + " s1=" + s1);
        }
    
        @Override
        public void fileRenamed(int i, String s, String s1, String s2) {
            System.out.println("fileRenamed s=" + s + " i=" + i + " s1=" + s1 + " s2=" + s2 + " count:" + (++count));
    
        }
    }

    三、说明

    如果启动时报找不到JNotify库(https://sourceforge.net/projects/jnotify/files/jnotify/jnotify-0.94/ 下载),请复制JNotify的最新版本库到系统相应库目录下。

    System.getProperty("java.library.path")

    在Windows上,复制jnotify_64bit.dll到:c:/windows下即可。

    在Linux上,可以复制libjnotify.so到/usr/lib64目录下。

     附件:https://files.cnblogs.com/files/songxingzhu/jnotify-lib-0.94.zip



  • 相关阅读:
    CRL线程池调度和配置的一些细节
    迁移到iis7
    musicstore edit方法出错的原因和解决方法
    如何分离出EF的三份结构定义文件
    在GridView中 鼠标移动到行 该行颜色变换
    飘逸程序员的老家
    [转贴]ASP.NET中常用的26个优化性能方案
    【转贴】在ASP.NET中显示进度条ASP.NET
    在使用GridView中删除的按钮弹出提示框最简单的一中方法
    【转贴】ASP.NET图表控件
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/8963591.html
Copyright © 2011-2022 走看看