2013-05-12 36 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