2014-02-12 35 views
2

我試圖從我的Cocoa應用程序中刪除應用程序文件夾內的文件。通過啓用沙盒模式,我無法刪除應用程序文件夾內的文件。如何以編程方式刪除啓用了sanbox的應用程序文件夾中的文件

此沙盒模式有一些選項可以啓用對下載,圖片,電影,音樂和用戶選擇文件的讀/寫訪問。

在此之前,我啓用了用戶選定文件的讀寫訪問權限,並使用NSOpenPanel完成了刪除操作。它工作正常,刪除應用程序文件夾內的文件,但它每次運行我的應用程序時打開面板。在這裏,我不希望任何用戶交互/權限刪除應用程序文件夾內的文件。有沒有解決方案可以刪除上面定義的約束文件。

感謝

+0

要刪除的文件是由您的應用臨時使用和創建的?如果是的話,爲什麼不使用臨時目錄? – Volker

+0

不是由我的應用程序創建的。我有第三方可執行文件將創建此臨時文件。我必須使用該臨時文件的內容,最後我必須在使用後刪除。 – santhosh

+0

@santhosh:如何允許使用NSOpenPanel訪問?你能幫我麼??? – Manthan

回答

2

您需要使用Security-Scoped Bookmarks

你的應用程序的訪問文件系統位置及其以外的容器,由用戶意圖的方式授予您的應用程序,如通過Powerbox不會在應用程序啓動或系統重新啓動時自動保存。當您的應用重新打開時,您必須重新開始。 (對此的一個例外是在應用程序終止時打開的文件,由於OS X恢復功能,這些文件保留在沙箱中)。

+0

我在我的應用程序中使用了這個Security-Scoped書籤。它工作正常,直到我的應用程序終止。但是當我重新啓動我的應用程序時,它不會保留。有沒有可能保留這個書籤,當我重新啓動我的應用程序而不使用powerbox? – santhosh

+0

我通過使用nsuserdefaults.Thanks尋求幫助,在應用程序重新啓動中保留了此書籤。另外我提到這個鏈接http://stackoverflow.com/questions/18711049/creating-a-security-scope-bookmark-for-a-file-from-one-of-a-directory-containing – santhosh

相關問題