gpt4 book ai didi

swift - 删除目录中的内容时出错 - Domain=NSCocoaErrorDomain Code=4 |域=NSPOSIXError域代码=2 "No such file or directory"

转载 作者:可可西里 更新时间:2023-11-01 01:25:06 28 4
gpt4 key购买 nike

如何在运行下面的代码时修复以下错误?我已经在 SO 中搜索过,但找不到 Swift 3 的任何内容。

// Delete all files in given directory
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let dataPath = NSURL(fileURLWithPath: path)
if let enumerator = FileManager.default.enumerator(atPath: dataPath.path!) {
while let fileName = enumerator.nextObject() as? String {
do {
try FileManager.default.removeItem(atPath: "\(dataPath)\(fileName)")
}
catch let e as NSError {
print(e)
}
catch {
print("error")
}
}
}

日志:

Error Domain=NSCocoaErrorDomain Code=4 "“.DS_Store” couldn’t be removed." UserInfo={NSFilePath=file:///Users/CIPL0469/Library/Developer/CoreSimulator/Devices/F0106B28-C4D1-4FE2-A425-D04C6BFDDC01/data/Containers/Data/Application/A5AB9B7B-6174-4BA7-9EFD-0E9F1C98CB17/Documents/.DS_Store, NSUserStringVariant=( Remove ), NSUnderlyingError=0x60800004fed0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

Error Domain=NSCocoaErrorDomain Code=4 "“2017-01-31_10-44-21.m4a” couldn’t be removed." UserInfo={NSFilePath=file:///Users/CIPL0469/Library/Developer/CoreSimulator/Devices/F0106B28-C4D1-4FE2-A425-D04C6BFDDC01/data/Containers/Data/Application/A5AB9B7B-6174-4BA7-9EFD-0E9F1C98CB17/Documents/2017-01-31_10-44-21.m4a, NSUserStringVariant=( Remove ), NSUnderlyingError=0x60800004fa80 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

Error Domain=NSCocoaErrorDomain Code=4 "“2017-01-31_10-44-26.m4a” couldn’t be removed." UserInfo={NSFilePath=file:///Users/CIPL0469/Library/Developer/CoreSimulator/Devices/F0106B28-C4D1-4FE2-A425-D04C6BFDDC01/data/Containers/Data/Application/A5AB9B7B-6174-4BA7-9EFD-0E9F1C98CB17/Documents/2017-01-31_10-44-26.m4a, NSUserStringVariant=( Remove ), NSUnderlyingError=0x60000004f570 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

最佳答案

(NS)DirectoryEnumerator

nextObject() 始终返回枚举项的完整路径/url,额外的连接会中断路径。除了将 URLString 与字符串插值连接以将其作为 path 参数传递的形式外,根本不起作用。

无论如何我建议使用 URL 相关的 API

let fileManager = FileManager.default
do {
let url = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
if let enumerator = fileManager.enumerator(at: url, includingPropertiesForKeys: nil) {
while let fileURL = enumerator.nextObject() as? URL {
try fileManager.removeItem(at: fileURL)
}
}
} catch {
print(error)
}

关于swift - 删除目录中的内容时出错 - Domain=NSCocoaErrorDomain Code=4 |域=NSPOSIXError域代码=2 "No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974312/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com