Andorid 之 FileObserver
当我们要对一个文件或者文件夹进行监听的时候,我们可以使用android api中的android.os.FileObserver
FileObsserver是一个抽象类,用户需要实现一个onEvent的函数里面可以实现对文件状态的监控
文件的状态一共有
int
ACCESS
Event type: Data was read from a file 读取文件内容
int
ALL_EVENTS
Event mask: All valid event types, combined 所有的事件
int
ATTRIB
Event type: Metadata (permissions, owner, timestamp) was changed explicitly 文件权限,用户和修改时间被改变
int
CLOSE_NOWRITE
Event type: Someone had a file or directory open read-only, and closed it 仅仅读取文件后关闭
int
CLOSE_WRITE
Event type: Someone had a file or directory open for writing, and closed it 打开写了文件后关闭
int
CREATE
Event type: A new file or subdirectory was created under the monitored directory 一个文件被创建在当前文件夹
int
DELETE
Event type: A file was deleted from the monitored directory 当前文件夹有文件被删除
int
DELETE_SELF
Event type: The monitored file or directory was deleted; monitoring effectively stops 当前目录或文件被删掉
int
MODIFY
Event type: Data was written to a file 正在写入数据
int
MOVED_FROM
Event type: A file or subdirectory was moved from the monitored directory 一个文件或者文件夹在移出文件夹
int
MOVED_TO
Event type: A file or subdirectory was moved to the monitored directory 一个文件或者文件夹在移进文件夹
int
MOVE_SELF
Event type: The monitored file or directory was moved; monitoring continues 当前文件或文件夹被移走
int
OPEN
Event type: A file or directory was opened 文件被打开
使用示例
下面的代码,表示当当前文件夹有文件创建或者删除的时候刷新目录
FileObserver observer = new FileObserver(mDirectory.getPath(), FileObserver.CREATE | FileObserver.DELETE) {
public void onEvent(int event, String path) {
mHandler.post(mUpdateFiles);
}
};
observer.startWatching();//开始监控
observer.stopWatching();//停止监控
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!