我正在使用Cocoa开发一个应用程序。我想不断检查特定位置的文件内容是否发生了变化(如.NET中的FileSystemWatcher
)。请有人给我一个解决方案
答案 0 :(得分:10)
请查看FSEvents。
答案 1 :(得分:6)
正如Diederik所说,FSEvents是Apple的Carbon API,用于监听文件系统事件。有人为FSEvents创建了一个名为SCEvents的Cocoa / Objective-C包装器,它更容易使用。
答案 2 :(得分:2)
另一种选择是直接从/ dev / fsevents firehose饮用。我正在处理一个完全正确的应用程序并且它运行良好。如果文件发生更改,删除,移动,属性发生更改等,您都会收到通知。当然,这不是“Cocoa”选项,因为它主要是C代码,但我们在Cocoa应用程序中使用它。 / p>
答案 3 :(得分:1)
FSEvents很棒,但它们用于监控文件夹。要监控单个文件,您需要查看kqueues。在终端尝试“man kqueue”。
答案 4 :(得分:1)
查看NSWorkspace类文档。
答案 5 :(得分:1)
以下是如何使用书签和NSFileManager执行此操作的示例,以便您可以在文件移动时关注该文件。
答案 6 :(得分:0)