2013-05-12 34 views
0

我將一個文件加密應用程序從Windows移植到Mac OSX。它的一個特點就是它可以讓你在其源應用程序中打開一個加密文件(比如TextEdit),進行一些修改,然後重新加密文件。如何在Mac OSX上監控進程/應用程序或文件鎖定?

要在OSX上實現此目的,我希望監視當系統打開我的解密文檔時啓動的進程的啓動/停止,或者監視文件本身獲取任何獲取和釋放的鎖。

有沒有一種方法可以通過現有的OSX或Unix API以編程方式實現這一點?我已經嘗試過.NET提供的API(FileSystemWatcher,Process),但沒有運氣。

+0

您通常應該看看您啓動的應用程序以查看它何時關閉。如果它關閉,您可以假定文件鎖定已被釋放。但是,我確定其他人能夠爲您提供檢查fs鎖的方法。嘗試檢查一些與UNIX一起捆綁的CLI utils,如系統PS,其他一些通用捆綁並能夠很好地指示文件鎖定 – Colton 2013-05-12 16:26:00

回答

0

我最終做的是聽取NSNotificationCenterNSApplication的通知後,我要求操作系統在其默認應用程序中打開我的文件。具體活動有:

  • NSWorkspace.Notifications.ObserveDidLaunchApplication(EventHandler)
  • NSWorkspace.Notifications.ObserveDidTerminateApplication(EventHandler)

如果你堅持同樣的問題,請see my implementation here