2016-11-06 7 views
2

Я делаю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 
    } 

, но это не похоже, чтобы поймать что-нибудь

ответ

2

Ваше здание tempDirectory не является правильным. Вы хотите:

let tempDirectory = URL(fileURLWithPath: NSTemporaryDirectory()). appendingPathComponent("video") 

Проблема с кодом, что вы не проезжали строку значение URL в URL(string:). Поскольку у вас есть путь к файлу, вам нужно использовать URL(fileURLWithPath:). И постройте пути/URL-адреса, используя предоставленные методы для обеспечения правильного добавления косых чернил и других частей.

Распечатайте ваше значение tempDirectory с вашего исходного кода, а затем напечатайте новое значение из кода в моем ответе. Обратите внимание на разницу в ключах.

Ваш URL будет что-то вроде:

/вар/...

и может отсутствовать слэш перед "видео".

Правильный URL файла будет что-то вроде:

файла: /// вар/...

+0

Ах да ... это звучит правильно. Благодаря! – Guig