如何从后台获取有关文件夹更改的信息

时间:2017-05-15 09:27:47

标签: swift filesystems grand-central-dispatch

我有一个应用程序,它应该监视文件夹文档在后台模式下的更改。我已经实现了使用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()

我收到通知,但是如何识别文件夹中发生的更改,是否已重命名,文件或文件夹已删除,添加等等。

0 个答案:

没有答案