2016-11-06 76 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