我的程序处理一个目录中的文件,然后在这个目录下创建另一个文件。如果你没有打开沙盒,结果是正确的,如果我打开沙盒,那么创建一个文件将失败。但我见过有些人可以做到。谁能告诉我该怎么做?我想问一下沙箱。不能创建文件?
回答
沙盒的核心目的是阻止应用程序在未经用户许可的情况下读取或写入文件。这里有三种获得写入文件权限的方法:
A)如果你的应用程序被设计为处理目录中的所有文件,读入现有文件并写出新文件,然后使用NSOpenPanel
让用户选择目录。这将授予您的应用程序读/写/创建到该目录。用户将看到一个询问目录的对话框。
B)如果正在处理由用户选择的文件,然后,以产生具有相同名称的文件,在相同目录,但具有不同文件扩展名(例如,其将应用文件从一种格式转换为另一种格式),那么您可以使用沙盒的功能相关项目。这要求您在应用程序中列出两个文件扩展名Info.plist
,向这些Info.plist
条目添加一个布尔型NSIsRelatedItemType
标志,并使用NSFileCoordinator
& NSFilePresenter
类 - 基于标准文档的应用程序会自动执行这些类。用户将看到一个询问源文件的对话框。
C)你是在处理文件,并用不同的名或在不同目录生成另一个。您需要使用NSOpenPanel
来访问该文件并使用NSSavePanel
来获得写入结果的权限。用户将看到两个对话框。
Apple在App Sandbox Design Guide提供了一个概述。
HTH
谢谢答复,你给开需要三种方法保存对话框,程序不符合,我想要的效果是: 在查找器中选择文件,然后弹出上下文菜单。在菜单中选择我的应用程序。然后创建一个新文件。 例如,在查找器中选择一个rar文件,右键弹出上下文菜单选择提取到当前目录。 像这样https://itunes.apple.com/cn/app/mini-unrar/id641146824?l=en&mt=12 – user3494251
- 1. 创建一个Drupal沙箱
- 2. iphone在沙箱外创建文件夹
- 3. 创建沙箱C#
- 4. 在应用程序沙箱下创建android phonegap文件
- 5. 我想创建一个下载按钮,但文件不下载?
- 6. 如何创建Java沙箱?
- 7. 创建SQL Server沙箱
- 8. 创建一个安全的Lua沙箱..?
- 9. 我想在没有NSOpenPanel的沙箱中复制文件
- 10. 我想创建一个文本文件
- 11. 沙箱问题
- 12. 可能的沙箱Python配置文件?
- 13. 我能找出哪些文件可以被我的OS X沙箱访问吗?
- 14. hortonwoks沙箱hcatalog从文件创建表时出错
- 15. 沙箱和保存文件
- 16. SKStoreViewController沙箱问题
- 17. 无法在沙箱中创建按钮
- 18. 如何创建沙箱用户?
- 19. paypal沙箱帐户创建失败
- 20. 无法创建黑莓沙箱帐户
- 21. 如何用C创建沙箱#
- 22. 我怎样才能沙箱PHP脚本?
- 23. 沙箱ActiveX组件
- 24. 沙箱WebGL插件
- 25. 沙箱不工作
- 26. Salesforce我的域首先创建的位置?沙箱或生产
- 27. 安全沙箱冲突不能从box.net
- 28. 沙箱执行功能PHP
- 29. 我想创建一个查找功能,而不创建一个枢轴
- 30. Paypal沙箱IPN问题
https://developer.apple.com/library/mac/documentation/security/conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html – VenoMKO