2016-11-06 57 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的值,然後從我的答案中的代碼打印新值。注意關鍵區別。

您的網址將是這樣的:

在/ var/...

,它可能會丟失 「視頻」 前的斜線。

正確的文件URL將是這樣的:

文件:/// VAR/...

+0

啊是啊...這聽起來權利。謝謝! – Guig