在沙箱中重新启动后访问同一文件

时间:2013-05-30 17:21:47

标签: objective-c macos cocoa sandbox

我的应用程序在

下读取iTunes的XML库文件
/Users/username/Music/iTunes/iTunes Music Library.xml

但是,如果iTunes资料库存储在不同的硬盘上,那么此文件也是如此。 沙箱不允许我访问此文件,除非用户授予它。

这是使用NSOpenPanel完成的。

但是,现在我每次打开应用程序时都要求用户允许访问此文件,这非常烦人。

有没有办法永久授予对特定文件的访问权限?

修改

例如,如果您在另一个应用程序中打开文件,如果您退出该应用程序,该应用程序将再次打开相同的文件。像这样的东西会很有用。

1 个答案:

答案 0 :(得分:5)

您需要使用安全范围的书签。您需要做的概述是:

  1. 检查您是否有已保存的书签(如下所示),如果有,请将其激活。完成。
  2. 让用户使用NSOpenPanel
  3. 选择文件/文件夹
  4. 获取返回的网址并将其作为安全范围的书签保存到磁盘 - 您将其保存在容器中的某个位置,NSUserDefaults是一种选择。
  5. 就是这样。您需要阅读Apple's documentation以了解详细信息。