swift - 如何在 macOS 上使用 swift 在下载文件夹中创建目录?权限异常。

标签 swift macos cocoa permissions

我正在努力使用以下代码在 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)
    }
}

这是输出:

You don’t have permission to save the file “FolderToCreate” in the folder “Downloads”. 

我该如何解决这个问题?

最佳答案

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

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

Enable read/write to Downloads Folder under App Sandbox

如果您不打算通过 Mac App Store 分发您的应用程序,您可以关闭沙盒。您的应用程序仍然可以签名,但用户在首次启动您的应用程序时会收到警告。

关于swift - 如何在 macOS 上使用 swift 在下载文件夹中创建目录?权限异常。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50200377/

相关文章:

ios - Xcode:单元测试时 URL 共享 session 未运行

ios - 如何在 swift 中期望枚举时传递空值

macos - WebStorm - 防止搜索窗口关闭

java - 如何在 Mac OS X 10.7.5 上运行 Eclipse Oxygen

cocoa - 更改 NSUserDefaults 中的对象,无需创建和重新设置副本

macos - NSOpenPanel 显示具有某些属性的文件

ios - Swift 可失败初始化器不能返回 Nil?

swift - 如何在 swift4 的字典中获取 'keys in an array' 的值

swift - Cocoa Swift - 取消 FileManager 的任务

objective-c - 如何获取 Mac 上最后按下的键?