2010-06-04 121 views
8

好的:我正在iPhone OS應用程序中實現文件共享,當然這意味着文件系統監視。好極了!使用kqueue()監視目錄中的更改的最佳方法是什麼?

基本上,操作系統從用戶在iTunes中操作文件到我的應用程序部分時可以訪問的目錄複製和/或刪除。因此,我需要通過像kqueue()這樣的高效機制來監控目錄的變化。

我該如何實現這一點,以便我知道文件已完成複製?我在想:

  • 監視kqueue()
  • 在事件中,啓動(或重置現有)超時。
  • 超時後,請繼續工作。

但是有沒有更好的方法來確保我不會跨越操作系統的腳趾?

回答

3

這只是一個部分答案,但可能有些用處。

  1. kqueue機制確實可以作爲應用程序的Documents目錄被修改時通知的一種手段。

  2. 一旦目錄被修改並且在複製文件完成之前,通知就會立即生效。我在測試中觀察到了這一點。

不幸的是,複製完成後沒有任何形式的通知。至少,我沒有找到。

我希望蘋果能夠實現的是需要有一個「iTunes同步」通知,因爲這似乎是一個普遍問題。

循環檢查新文件的修改時間是否沒有變化可能會起作用,但只能在大部分時間。在某些極端情況下,iOS可以暫停在後臺完成各種耗時的工作。

如果有辦法檢查某個文件是否被另一個進程打開,那麼這就足夠了。

傑夫

相關問題