Waaatcher
macOS 的文件监视器包装器
演示
FileSystemEvent
如何使用
开始
let watcher = Waaatcher(paths: [path1, path2, path3])
// ...
watcher.watcherEventCallback = { events in
print("Events: \(events)")
}
watcher.start()
停止
watcher.stop()
// or watcher = nil
每个事件都是一个包含下面三个部分的架构。
struct WaaaFSEvent {
let path: String
let flags: WaaaFSEventFlags
let ID: FSEventStreamEventId
}
另外,`WaaaFSEventFlags` 被定义为不可读的 `FSEventStreamEventFlags` 的包装器。
响应式扩展
v1.0 扩展 Waaatcher 响应式扩展。API 简单直观,与 Waaatcher 原生回调和事件数组参数不同,响应式扩展通过单独的事件进行触发。
fileprivate let bag = DisposeBag()
// ...
let watcher = Waaatcher(paths: [path])
watcher?.rx.FSEventObservable.subscribe(onNext: { [weak self] in
self?.output("Event: \($0)")
}).disposed(by: bag)