如何在MacOS上的Swift中的下载文件夹中创建目录?权限异常。

4 permissions macos cocoa swift

我正在努力使用以下代码在macOS上的用户下载目录中简单地创建一个文件夹:

static func createFolderInDownloadsDirectory() {
    let downloadsDirectory = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first!
    let downloadsDirectoryWithFolder = downloadsDirectory.appendingPathComponent("FolderToCreate")

    do {
        try FileManager.default.createDirectory(at: downloadsDirectoryWithFolder, withIntermediateDirectories: true, attributes: nil)
    } catch let error as NSError {
        print(error.localizedDescription)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

You don’t have permission to save the file “FolderToCreate” in the folder “Downloads”. 
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Cod*_*ent 5

Xcode 9和更高版本默认情况下启用沙箱,这严重限制了与系统的交互。但是,您仍然可以通过向应用程序添加权利来写入“下载”文件夹:

选择您的目标,然后选择功能,然后将下载文件夹设置为读/写:

在应用程序沙箱下启用对“下载”文件夹的读取/写入

如果您无意通过Mac App Store分发应用程序,则可以关闭沙箱。您的应用程序仍然可以签名,但是用户首次启动您的应用程序时会收到警告。