相当于Cocoa中的FileSystemWatcher(.NET)

相当于Cocoa中的FileSystemWatcher(.NET),cocoa,filesystemwatcher,fsevents,Cocoa,Filesystemwatcher,Fsevents,我正在开发一个可可应用程序。我想经常检查特定位置的文件内容是否发生了更改(如.NET中的FileSystemWatcher)。请任何人给我一个解决方案请看一看。正如迪德里克所说,这是苹果用于监听文件系统事件的碳API。有人为FSEvents创建了一个Cocoa/Objective-C包装器,名为,使用起来有点简单。FSEvents很棒,但它们用于监视文件夹。要监视单个文件,您需要签出队列。在终端中尝试“手动排队”。另一种选择是直接从/dev/fsevents消防软管喝水。我在一个应用程序上工作,

我正在开发一个可可应用程序。我想经常检查特定位置的文件内容是否发生了更改(如.NET中的
FileSystemWatcher
)。请任何人给我一个解决方案

请看一看。

正如迪德里克所说,这是苹果用于监听文件系统事件的碳API。有人为FSEvents创建了一个Cocoa/Objective-C包装器,名为,使用起来有点简单。

FSEvents很棒,但它们用于监视文件夹。要监视单个文件,您需要签出队列。在终端中尝试“手动排队”。

另一种选择是直接从/dev/fsevents消防软管喝水。我在一个应用程序上工作,它正好做到这一点,并且工作得非常好。如果文件发生更改、删除、移动、属性更改等,您会收到通知。当然,这不是“Cocoa”选项,因为它主要是C代码,但是我们在Cocoa应用程序中使用了它。

kqueues上的另一个资源是查看NSWorkspace类文档。

下面是一个如何使用书签和NSFileManager执行此操作的示例,以便您可以在文件移动时跟踪它


SCEvents对于寻找Cocoa解决方案的人来说是更好的选择,不过.FSEvents仍然支持目录更改,而且听起来SCEvents是FSEvents的包装器。该问题要求监视单个文件。而排队则更适合这样做。上面指向SCEvents的链接也引用了UKKQueue,它可能也是一个很好的包装器。只是一个建议:“给我一个解决方案”在英语中可能会被解释为有点粗糙,也意味着你可能没有为自己寻找答案。在发布问题之前,这是谷歌的一个好形式。:-)撇开学究不谈,FSEvents不是碳API;它是核心服务框架的一部分。