px普贤教程PuXian
普贤教程 › 包参考

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_recdir, max_depth = -1
fs_diffbefore, after
fsn_eventsdiff
fsn_filterdiff, exts
fsn_excludediff, subs
其余 3 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
fsn_recdir, rel, depth, max_depth, out
fs_snapshotdir
fs_has_changediff

包内说明(源码头注释)

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}};目录本身不收录