SKQueue 是一个 Swift 库,用于监控文件系统的更改。 它封装了 libc 的内核事件通知接口 kqueue 的一部分。 这意味着 SKQueue 具有非常小的占用空间,并且具有高度可扩展性,就像 kqueue 一样。
要在较旧的环境中构建,只需将 Package.swift
替换为此文件。
要使用 SKQueue,请将以下代码添加到 Package.swift
中的 dependencies
。 然后运行 swift package fetch
来获取 SKQueue。
.package(url: "https://github.com/daniel-pedersen/SKQueue.git", from: "1.2.0"),
要使用 SKQueue
监控文件系统,首先需要一个可以接收通知的 SKQueueDelegate
实例。 然后可以使用 addPath
添加要监视的路径,如下例所示。
import SKQueue
class SomeClass: SKQueueDelegate {
func receivedNotification(_ notification: SKQueueNotification, path: String, queue: SKQueue) {
print("\(notification.toStrings().map { $0.rawValue }) @ \(path)")
}
}
let delegate = SomeClass()
let queue = SKQueue(delegate: delegate)!
queue.addPath("/Users/steve/Documents")
queue.addPath("/Users/steve/Documents/dog.jpg")
操作 | 示例输出 |
---|---|
在 /Users/steve/Documents 中添加或删除文件 |
["Write"] @ /Users/steve/Documents |
在 /Users/steve/Documents 中添加或删除目录 |
["Write", "SizeIncrease"] @ /Users/steve/Documents |
写入文件 /Users/steve/Documents/dog.jpg |
["Rename", "SizeIncrease"] @ /Users/steve/Documents/dog.jpg |
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature