gpt4 book ai didi

swift - 能够写入/读取文件但无法删除文件 SWIFT

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:51 24 4
gpt4 key购买 nike

我将 .jpg 图像存储在 iOS 文档目录中。我可以写入文件和读取文件,但是在删除它们时它说没有这样的文件但那不可能是因为我可以使用相同的 url 读取它。

阅读:

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let path = NSURL(fileURLWithPath: paths[0] as String)
let fullPath = path.appendingPathComponent(info["pi"] as! String)

let data = NSData(contentsOf: fullPath!)

删除:

let fileManager = FileManager.default
fileManager.delegate = self
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let path = NSURL(fileURLWithPath: paths[0] as String)
let fullPath = path.appendingPathComponent(info["pi"] as! String)

do {
try fileManager.removeItem(atPath: "\(fullPath!)")
} catch {
print("\(error)")
}

它抛出:

Error Domain=NSCocoaErrorDomain Code=4 "“image_496251232.806566.jpg” couldn’t be removed." UserInfo={NSUnderlyingError=0x1758eb40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}, NSFilePath=file:///var/mobile/Containers/Data/Application/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232.806566.jpg, NSUserStringVariant=(
Remove
)}

最佳答案

您的 fullPath 变量是一个(可选的)URL。要将其转换为文件路径字符串,请使用 .path 属性,而不是字符串插值:

fileManager.removeItem(atPath: fullPath!.path)

或者更好的是,直接使用 URL 而无需将其转换为路径:

fileManager.removeItem(at: fullPath!)

(并摆脱强制展开以支持选项绑定(bind)...... :-)

关于swift - 能够写入/读取文件但无法删除文件 SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39659939/

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