3

我正在做

    let tempDirectory = URL(string: "\(NSTemporaryDirectory())video/")!
    do {
        try FileManager.default.createDirectory(
            at: tempDirectory,
            withIntermediateDirectories: true)
    } catch { report(error) }

这通常会抛出 NSCocoaErrorDomain Code: 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
    }

但这似乎没有抓住任何东西

4

1 回答 1

3

你的建筑tempDirectory不正确。你要:

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

您的代码的问题是您没有将值 URL 字符串传递给URL(string:). 由于您有一个文件路径,因此您需要使用URL(fileURLWithPath:). 并使用提供的方法构建路径/URL,以确保正确添加斜线和其他部分。

tempDirectory从原始代码中打印您的值,然后从我的答案中的代码中打印新值。注意关键区别。

您的 URL 将类似于:

/var/...

并且它可能在“视频”之前缺少斜线。

正确的文件 URL 类似于:

文件:///var/...

于 2016-11-06T02:47:07.823 回答