我的程序處理一個目錄中的文件,然後在這個目錄下創建另一個文件。如果你沒有打開沙盒,結果是正確的,如果我打開沙盒,那麼創建一個文件將失敗。但我見過有些人可以做到。誰能告訴我該怎麼做?我想問一下沙箱。不能創建文件?
回答
沙盒的核心目的是阻止應用程序在未經用戶許可的情況下讀取或寫入文件。這裏有三種獲得寫入文件權限的方法:
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