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/...

また、「video」の前のスラッシュが欠落している可能性があります。

正しいファイル URL は次のようになります。

ファイル:///var/...

于 2016-11-06T02:47:07.823 に答える