我正在阅读有关Mac应用程序沙盒的内容,并且想知道当用户在NSOpenPanel或NSSavePanel中选择文件夹时到底发生了什么." App Sandbox设计指南 "给出了以下示例:
当应用程序的用户指定他们要使用文件或文件夹时,系统会将相关路径添加到应用程序的沙箱中.比如说,用户将
~/Documents文件夹拖到应用程序的Dock磁贴上(或者移动到应用程序的Finder图标上,或拖到应用程序的打开窗口中),从而表明他们想要使用该文件夹.作为响应,系统使~/Documents文件夹,其内容及其子文件夹可供您的应用程序使用.
我不清楚这里的"内容"是什么意思.这仅限于查看文件夹中的文件而无法读取这些文件中的内容吗?或者这只是意味着应用程序将能够读取文档文件夹中的任何文件(递归)(例如,它可以同时读取~/Documents/Foo.txt和~/Documents/Bar/Baz.txt)?那么写操作(写入现有文件,删除一个文件或创建新文件或文件夹)呢?
该应用程序可以读取所选文件夹及其子文件夹中的所有文件.对于新文件以及覆盖现有文件,写入也是如此.也可以删除文件夹(或您拥有所需权限的其他文件夹)范围内的新文件夹创建,文件夹移动.
简而言之,您可以自由地在此文件夹及其子文件夹中执行任何操作.
警告:当保存面板打开并显示Documents为目标时,它可能是~/Library/Containers/<app signature>/Data/Documents.您可以更改位置,但是在文件成功保存但未找到文件后,我第一次感到困惑~/Documents.
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |