Macos 当用户选择文件夹时,Mac沙盒应用程序可以访问什么?

Macos 当用户选择文件夹时,Mac沙盒应用程序可以访问什么?,macos,sandbox,Macos,Sandbox,我正在阅读有关Mac应用程序沙盒的文章,我想知道当用户在NSOpenPanel或NSSavePanel中选择文件夹时会发生什么。“”给出了以下示例: 当应用程序的用户指定要使用文件或文件夹时,系统会将相关路径添加到应用程序的沙箱中。例如,用户将~/Documents文件夹拖到应用程序的Dock磁贴(或应用程序的Finder图标,或应用程序的打开窗口)上,从而表明他们想要使用该文件夹。作为响应,系统会将~/Documents文件夹及其内容和子文件夹提供给应用程序 我不清楚这里的“内容”是什么意思。

我正在阅读有关Mac应用程序沙盒的文章,我想知道当用户在NSOpenPanel或NSSavePanel中选择文件夹时会发生什么。“”给出了以下示例:

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


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

应用程序可以读取选定文件夹及其子文件夹中的所有文件。同样的情况也适用于写入,无论是新文件还是覆盖现有文件。也可以删除,也可以创建新文件夹,在文件夹(或您具有所需权限的其他文件夹)范围内移动文件夹

简单地说,您可以在该文件夹及其子文件夹中自由地执行任何操作


警告:当“保存”面板打开并将
文档
显示为目标时,它可能是
~/Library/Containers//Data/Documents
。您可以更改位置,但当文件成功保存后,我第一次感到困惑,但文件不在
~/Documents

处。此外,如果您启用了书签权限,则可以使用-[NSURL bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:]保存这些权限以备以后使用。看见