普贤教程 › 包参考
fsnotify 包
文件变更监听(轮询快照)· 0.2.0
新增递归快照 + 事件序列 + 过滤(对照缺口表「文件/目录监控增强」)。
| 项 | 值 |
|---|---|
| 包名 | fsnotify |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | fsnotify.px |
| 分类 | 文件系统 |
| 文件数 / 行数 | 1 / 177 |
安装与引入
bash
pxpkg init # 首次 pxpkg add fsnotify@0.2.0 pxpkg install
px
import fsnotify所属分类教程:文件系统
公开接口
| 函数 | 参数 |
|---|---|
fsn_snapshot_rec | dir, max_depth = -1 |
fs_diff | before, after |
fsn_events | diff |
fsn_filter | diff, exts |
fsn_exclude | diff, subs |
其余 3 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
fsn_rec | dir, rel, depth, max_depth, out |
fs_snapshot | dir |
fs_has_change | diff |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/fsnotify —— 文件变更监听(轮询快照)· 0.2.0 ------------------------------------------------------------ 新增递归快照 + 事件序列 + 过滤(对照缺口表「文件/目录监控增强」)。 纯函数库(无 IO、无状态、无并发),编译(px build)与解释(px run)双模式一致。 对齐 Go fsnotify 心智(轮询实现,无 inotify 依赖): var snap = fsn_snapshot_rec("/var/log") # 递归快照(相对路径) var d = fs_diff(snap, fsn_snapshot_rec("/var/log")) fsn_events(d) # → [{path, kind}] fsn_filter(d, [".txt", ".log"]) # 事件过滤(按扩展名) fsn_exclude(d, ["/cache/"]) # 排除含子串的路径 说明: - 相对路径用 "/" 分隔(sub/file.txt);mtime 取 file_stat(目录 mtime=0) - max_depth:-1 不限;0 只第一层;1 两层……相对根 ============================================================ 递归目录快照:{相对路径: {mtime, size, is_dir}};目录本身不收录