2017-05-02 32 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 
}() 
相关问题