FileObserver是一个监听文件的创建、删除、更改,移动等操作的抽象类
监听的事件类型:
FileObserver.ACCESS,即文件被访问
FileObserver. MODIFY,文件被 修改
FileObserver.ATTRIB,文件属性被修改,
FileObserver.CLOSE_WRITE,可写文件被 close
FileObserver.CLOSE_NOWRITE,不可写文件被 close
FileObserver.OPEN,文件被 open
FileObserver. MOVED_FROM,文件被移走,
FileObserver.MOVED_TO,文件被移来,
FileObserver.CREATE,创建新文件
FileObserver.DELETE,文件被删除,
FileObserver.DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
FileObserver. MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
FileObserver.CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
FileObserver.ALL_EVENTS,包括上面的所有事件
demo:
1。自定义自己的FileObserver类
public class MyFileObserver extends FileObserver {
//如此构造的对象监听所有FileObserver可以监听的事件,path为需监听的文件路径
public MyFileObserver(String path) {
super(path);
}
//这样构造的对象只监听mask对应的事件
public MyFileObserver(String path, int mask) {
super(path, mask);
}
//需要实现的方法(当触发监听事件时系统会自动回调该方法)
@Override
public void onEvent(int event, String path) {
switch (event) {
case FileObserver.CREATE:
//执行的逻辑
break;
case FileObserver.DELETE:
//执行的逻辑
break;
}
}
}
2.在需要的地方开始监听
MyFileObserver observer = new MyFileObserver(path);
observer.startWatching();//启动文件监听
observer.stopWatching();//停止文件监听