使用jnotify时,监测函数中有一个mask参数,它是当你监测目录下的文件发生某种变化时,会根据你的变化情况返回一个状态值,这个值是10进制的,你需要对应源码中16进制的mask事件常量进行匹配,从而确定是哪一种变化,不过它内部已经进行了进制转换,我们只有在输出时需要手动转换一下进行确定,实际调用时只需要用事件常量名和mask的入参进行比较即可。
例如:
if(JNotify_linux.IN_DELETE==mask){
syso(path+"文件已删除");
}
下面我来介绍几个常用mask事件常量的含义:
IN_CREATE 在受监控目录下创建了文件或目录
IN_DELETE 在受监控目录内删除了文件或目录
IN_DELETE_SELF 删除了受监控目录/文件本身
IN_MODIFY 文件被修改
IN_MOVED_FROM 文件移除受监控目录
IN_MOVED_TO 将文件移到受监控目录