官网:http://jnotify.sourceforge.net/
根据官网我们得知:
JNotify,是一个JAVA类库,它允许JAVA应用监听文件系统下面的事件:
JNotify支持的平台:
- Windows 2000 以上版本
- Linux 2.6.14 以上版本
- Mac OS X 10.5 以上版本
应用示例:
1.下载JAR文件:https://sourceforge.net/projects/jnotify/
2.把 jnotify-0.94.jar 放入到工程中。
3.把 jnotify_64bit.dll 文件放到JDK bin文件夹下,根据自己的系统选择32位还是64位的 dll 文件。
4.示例代码:
[Java] 纯文本查看 复制代码 import java.io.File;
import java.util.Date;
import net.contentobjects.jnotify.JNotify;
import net.contentobjects.jnotify.JNotifyListener;
public class MainTest {
public static void main(String[] args) {
try {
// path to watch
// 指定要检测的目录
String dir = new File(args.length == 0 ? "." : args[0]).getCanonicalFile().getAbsolutePath();
// watch mask, specify events you care about,or JNotify.FILE_ANY for all events.
// 配置要检测的类型,配置你关心的(新建|删除|修改|重命名),或者直接标记为 JNotify.FILE_ANY ,它会监听所有类型
int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED;
// watch subtree
// 是否检测子目录
boolean watchSubTree = true;
JNotify.addWatch(dir, mask, watchSubTree, new JNotifyListener() {
public void fileRenamed(int wd, String rootPath, String oldName, String newName) {
System.out.println("renamed" + rootPath + " : " + oldName + " -> " + newName);
}
public void fileModified(int wd, String rootPath, String name) {
System.out.println("modified" + rootPath + " : " + name);
if (name.contains("a.txt")) {
System.out.println("["+new Date().toLocaleString()+"]a.txt file was modified !");
}
}
public void fileDeleted(int wd, String rootPath, String name) {
System.out.println("deleted " + rootPath + " : " + name);
}
public void fileCreated(int wd, String rootPath, String name) {
System.out.println("created" + rootPath + " : " + name);
}
});
System.out.println("Monitoring " + dir);
while (true)
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
} ------------------------------------------------- 运行结果:
Monitoring E:\jNotifyTest
created E:\jNotifyTest : 新建文本文档.txt
renamed E:\jNotifyTest : 新建文本文档.txt -> 1.txt
modified E:\jNotifyTest : 1.txt
deleted E:\jNotifyTest : 1.txt
|