在 /Users/Shared/ 创建目录 - 使用 Swift

Creating a directory at /Users/Shared/ - using Swift

我正在使用以下代码在 /Users/Shared/ 中创建一个目录,以便在所有用户之间共享我的应用程序数据。当我 运行 代码得到以下输出时。

2019-03-08 19:41:41.751418+0530 MyApp[7224:488397] Couldn't create document directory

2019-03-08 19:41:41.754026+0530 MyApp[7224:488397] Document directory is file:///Users/Appname

    let fileManager = FileManager.default
    if let tDocumentDirectory = fileManager.urls(for: .userDirectory, in: .localDomainMask).first {
        let filePath =  tDocumentDirectory.appendingPathComponent("Appname")
        if !fileManager.fileExists(atPath: filePath.path) {
            do {
                try fileManager.createDirectory(atPath: filePath.path, withIntermediateDirectories: true, attributes: nil)
            } catch {
                NSLog("Couldn't create document directory")
            }
        }
        NSLog("Document directory is \(filePath)")
     }

我不明白为什么会出现这个错误。如何做到这一点?

请仔细阅读日志消息。

您正试图在 /Users/Shared 中创建 file:///Users/Appname 文件夹 而不是 。您必须附加 "Shared/Appname".

我们鼓励您使用 FileManager 的 URL 相关 API(以及更少混淆的变量名称)

let fileManager = FileManager.default
let userDirectory = try! fileManager.url (for: .userDirectory, in: .localDomainMask, appropriateFor: nil, create: false)
let folderURL = userDirectory.appendingPathComponent("Shared/Appname")
if !fileManager.fileExists(atPath: folderURL.path) {
    do {
        try fileManager.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil)
    } catch {
        print("Couldn't create document directory", error)
    }
}
print("Document directory is \(folderURL)")