2009-06-30 48 views
6

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

+3

只是一个建议:“给我一个解决方案”可以解释为脱落的英文稍有磨损,同时也意味着你可能没有找自己的答案。在发布问题之前,这对Google是很好的形式。 :-) – 2009-06-30 16:32:36

回答

6

正如Diederik所说,FSEvents是Apple的Carbon API,用于监听文件系统事件。有人为FSEvents创建了一个名为SCEvents的Cocoa/Objective-C包装器,它使用起来更容易一些。

+1

除了迂腐之外,FSEvents不是碳API;它是核心服务框架的一部分。 – briankc 2011-06-18 02:13:20

1

FSEvents很棒,但它们用于监视文件夹。要监视单个文件,您需要检出kqueue。在终端尝试“man kqueue”。

+0

虽然,SCEvents对于寻找Cocoa解决方案的人来说是更好的选择。 – 2009-06-30 16:29:57

2

另一种选择是直接从/ dev/fsevents firehose中饮用。我工作的应用程序完全是这样的,并且工作得很好。如果文件发生变化,被删除,被移动,属性发生变化等,您可以得到通知。当然,这不是“Cocoa”选项,因为它主要是C代码,但我们正在使用Cocoa应用程序。

1

看那NSWorkspace类文档。