2017-05-02 54 views

回答

2

沙盒應用程序有權創建其應用程序腳本目錄。
FileManager的方法url(for:in:appropriateFor:create:)檢索URL並在必要時創建目錄。

let fileManager = FileManager.default 
let scriptsFolderURL = try! fileManager.url(for: .applicationScriptsDirectory, in: .userDomainMask, appropriateFor: nil, create: true) 
+0

當我試圖運行你的例子我有一個致命的錯誤:**致命錯誤:「嘗試」表達式意外地引發了一個錯誤:錯誤域= NSCocoaErrorDomain代碼= 513「您沒有權限保存文件** –

+0

奇怪我使用應用程序腳本文件夾創建了兩個項目沒有任何問題您是否更改了父項的權限文件夾(下面的應用沙箱):用戶選擇的文件讀/寫(我的文件夾(在應用程序沙箱下面):我應該是'你:工作人員700' – vadian

+0

權限看起來很好:755 iam:staff :-(文件訪問 –

0

我那是不可能的MacOS 10.12下創建的文件夾Application Scripts的感覺,但它工作在10.11。雖然以前有可能創建捆綁腳本目錄並複製其中的文件,但它不適用於沙盒應用程序,也許Apple現在爲此添加了限制。

它不是完美的,但似乎工作:

lazy var scriptsFolderURL: URL = { 
    let manager = FileManager.default 
    var scriptsFolder: URL! 
    do { 
     scriptsFolder = try manager.url(for: .applicationScriptsDirectory, in: FileManager.SearchPathDomainMask.userDomainMask, appropriateFor: nil, create: true) 
    } catch { 
     scriptsFolder = manager.urls(for: .applicationScriptsDirectory, in: .userDomainMask).first! 
    } 
    return scriptsFolder 
}() 
相關問題