博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JNotify的监测文件变化的简单测试例子
阅读量:6293 次
发布时间:2019-06-22

本文共 2139 字,大约阅读时间需要 7 分钟。

一、理由

使用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

 

 

转载地址:http://pzcta.baihongyu.com/

你可能感兴趣的文章
Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第三部分:SqlField)
查看>>
工作第十五周:上线前的惊悚
查看>>
Java获取EXE文件图标的方法
查看>>
深入解析Django Admin模块
查看>>
SQL Server死锁详解
查看>>
电影剧本写作基础
查看>>
7.11 计算机基础
查看>>
虚拟机 liunx系统以 root 身份登录权限
查看>>
《当程序员的那些狗日日子》(五十一)太不给力的年终奖
查看>>
LeetCode(203): Remove Linked List Elements
查看>>
Join和Relate作用和区别
查看>>
mysql中的意向锁IS,IX
查看>>
CSS学习笔记02float
查看>>
python库的学习系列之 15. Generic Operating System Services
查看>>
使用excel进行数据挖掘(5)---- 应用场景分析
查看>>
【CSS】隐藏多行文本框Textarea在IE中的垂直滚动栏
查看>>
2017-2018-1 《信息安全系统设计基础》实验一报告
查看>>
2017-2018-1 20155303 《信息安全系统设计基础》第五周学习总结
查看>>
0314考试总结
查看>>
Jquery 文字模拟输入效果
查看>>