我有一个应用程序,它应该监视文件夹文档在后台模式下的更改。我已经实现了使用GCD完成它,这里是我的代码:
fileDescriptor = open(folderToMonitor.path, O_CREAT, 0o644)
dispatchQueue = DispatchQueue(label: "Monitor")
source = DispatchSource.makeFileSystemObjectSource(fileDescriptor: fileDescriptor, eventMask: .all, queue: dispatchQueue)
source.setEventHandler {
[weak self] in
if self?.delegate != nil {
self?.delegate?.didChangeHappend()
}
}
source.setCancelHandler {
[weak self] in
self?.delegate = nil
guard let desc = self?.fileDescriptor else { return }
close(desc)
}
source.resume()
我收到通知,但是如何识别文件夹中发生的更改,是否已重命名,文件或文件夹已删除,添加等等。