Создание каталога в / Users / Shared / - с помощью Swift - PullRequest
0 голосов
/ 08 марта 2019

Я использую следующий код для создания каталога в / Users / Shared / для обмена данными моего приложения между всеми пользователями. Когда я запускаю код, я получаю следующий вывод.

2019-03-08 19: 41: 41.751418 + 0530 MyApp [7224: 488397] Не удалось создать каталог документов

2019-03-08 19: 41: 41.754026 + 0530 MyApp [7224: 488397] Каталог документов: 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)")
     }

Не знаю, почему произошла эта ошибка. Как это можно сделать?

1 Ответ

2 голосов
/ 08 марта 2019

Пожалуйста, внимательно прочитайте сообщения журнала.

Вы пытаетесь создать папку file:///Users/Appname, которая не в /Users/Shared. Вы должны добавить "Shared/Appname".

И вам рекомендуется использовать API-интерфейс FileManager, связанный с URL (и менее запутанные имена переменных names)

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)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...