2009-06-30 47 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類文檔。