沙盒和目录列表

4

我经常执行的一个任务是使用NSFileManager:contentsOfDirectoryAtPath读取目录内容,但在Lion中启用沙箱后,这变得不可能。

我知道用户必须从NSOpenPanel中选择目录,以使沙箱快乐(或放弃它),但是如果没有用户交互,如何“通知”沙箱我必须从先前存储在某个配置文件中的路径读取目录?

目前,我已设置以下授权密钥:

com.apple.security.files.user-selected.read-write
com.apple.security.documents.user-selected.read-write
com.apple.security.temporary-exception.files.absolute-path.read-write
1个回答

5

沙盒目前无法在应用程序启动之间记住其允许访问的文件系统内容。

这个问题已经被苹果公司列为高优先级,但我仍建议您提交自己的错误报告,以提高苹果公司的关注度。


@twickl 是的,自10.7.3以来就已经解决了。但是需要你提供特殊代码。基本上,这意味着你必须将你的URL转换为安全书签(而不是常规URL书签),并且可以在应用程序中保存和使用它们。有两种类型的安全书签 - 每个应用程序(在整个应用程序之间保存)或每个文档,对于引用其他文件的文档(例如引用其他文件资源的项目文档)的情况。查看苹果关于NSURL的文档,了解有关安全书签的信息。 - Jacob Gorban
非常感谢您提供的详细答案!我会查看这份文档。 - user99070

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接