9

我正在阅读有关 Mac 应用程序沙盒的信息,并且想知道当用户选择 NSOpenPanel 或 NSSavePanel 中的文件夹时究竟会发生什么。“<a href="http://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html" rel="noreferrer">应用沙盒设计指南”给出了以下内容例子:

当您的应用程序的用户指定他们要使用文件或文件夹时,系统会将关联的路径添加到您的应用程序的沙箱中。例如,用户将~/Documents文件夹拖到应用程序的 Dock 磁贴(或应用程序的 Finder 图标,或应用程序的打开窗口)上,从而表明他们想要使用该文件夹。作为响应,系统会~/Documents为您的应用程序提供文件夹、其内容及其子文件夹。

我不清楚这里的“内容”是什么意思。这是否仅限于查看文件夹中的文件而无法读取这些文件中的内容?或者这是否仅仅意味着应用程序将能够(递归地)读取 Documents 文件夹中的任何文件(例如,它可以同时读取~/Documents/Foo.txt~/Documents/Bar/Baz.txt)?那么写入操作(写入现有文件、删除文件或创建新文件或文件夹)呢?

4

1 回答 1

9

该应用程序可以读取所选文件夹及其子文件夹中的所有文件。写入也是如此,无论是新文件还是覆盖现有文件。也可以删除以及创建新文件夹、在文件夹(或您拥有所需权限的其他文件夹)范围内移动文件夹。

简而言之,您可以自由地在此文件夹及其子文件夹中做任何您想做的事情。

警告:当保存面板打开并显示Documents为目标时,它可能是~/Library/Containers/<app signature>/Data/Documents. 您可以更改位置,但是文件成功保存但不在~/Documents.

于 2012-10-07T18:21:51.930 回答