FileManager.createDirectory завершается ошибкой с кодом NSCocoaErrorDomain: 518
Я делаю
let tempDirectory = URL(string: "\(NSTemporaryDirectory())video/")!
do {
try FileManager.default.createDirectory(
at: tempDirectory,
withIntermediateDirectories: true)
} catch { report(error) }
и это часто выбрасывает код NSCocoaErrorDomain: 518.
Есть идеи о причине? Я думал, что мог, потому что там уже что-то есть, поэтому я добавил
var isDir: ObjCBool = false
if FileManager.default.fileExists(
atPath: tempDirectory.absoluteString,
isDirectory: &isDir
) {
if isDir.boolValue {
print("Temp directory exists on launch")
}
else {
print("Temp directory exists on launch and is a file")
}
return
}
но это, кажется, ничего не ловит
1 ответ
Ваше здание tempDirectory
не правильно Ты хочешь:
let tempDirectory = URL(fileURLWithPath: NSTemporaryDirectory()). appendingPathComponent("video")
Проблема с вашим кодом заключается в том, что вы не передавали строку URL-адреса значения URL(string:)
, Поскольку у вас есть путь к файлу, вы должны использовать URL(fileURLWithPath:)
, И создайте пути /URL-адреса, используя предоставленные методы, чтобы обеспечить правильное добавление слешей и других частей.
Напечатайте свою ценность tempDirectory
из вашего исходного кода, а затем распечатайте новое значение из кода в моем ответе. Обратите внимание на ключевое отличие.
Ваш URL будет примерно таким:
/ Вар /...
и это может пропустить слеш перед "видео".
Правильный URL файла будет примерно таким:
Файл:/// вар /...