removeItem(at: ) 成功删除目标文件时抛出异常
Posted
技术标签:
【中文标题】removeItem(at: ) 成功删除目标文件时抛出异常【英文标题】:removeItem(at: ) throw exception while successfully removed target file 【发布时间】:2021-08-07 08:13:13 【问题描述】:在我的应用程序中,有一个函数可以删除给定 URL 处的文件。当我在 iPad 和 iPad 模拟器上运行它时,removeItem(at: ) 抛出“文件名”无法删除异常。但是,目标文件实际上已被删除。有没有人见过类似的问题?怎么解决?感谢您的关注!
do
if FileManager().fileExists(atPath: url.path)
try FileManager.default.removeItem(at: URL)
catch
print("Error when delete file, \(error)")
if !FileManager().fileExists(atPath: url.path)
print("File was deleted")
输出是:
删除文件时出错,Error Domain=NSCocoaErrorDomain Code=4 ""A_wrinkle_in_time.epub" 无法删除。" UserInfo=NSUserStringVariant=( 消除 ), NSFilePath=/Users/frankw/Library/Developer/CoreSimulator/Devices/3175FB37-784E-4735-B3A9-40A9807DCA3F/data/Containers/Data/Application/97025FFC-C707-46E2-9E75-2CAF043022EB/Documents/A_wrinkle_in_time.epub , NSUnderlyingError=0x600000dc3780 错误域=NSPOSIXErrorDomain Code=2 "没有这样的文件或目录" 文件已被删除 /Users/frankw/Library/Developer/CoreSimulator/Devices/3175FB37-784E-4735-B3A9-40A9807DCA3F/data/Containers/Data/Application/97025FFC-C707-46E2-9E75-2CAF043022EB/Documents
【问题讨论】:
【参考方案1】:我认为你的代码应该是:
try FileManager.default.removeItem(at: url)
【讨论】:
感谢您的建议!我试过 removeItem(atPath: url.path)。它产生相同的错误结果。 可能是 removeItem(at: url) 而不是 removeItem(atPath: url.path)。编辑我的答案。以上是关于removeItem(at: ) 成功删除目标文件时抛出异常的主要内容,如果未能解决你的问题,请参考以下文章
从 localStorage 中删除:我应该使用 delete 还是 .removeItem?
Localstorage & JSON:我怎样才能只删除一个键内的 1 个数组,因为 localstorage.removeItem 需要整个键
将源目录复制到两个目标目录的 Bash 脚本,如果成功,则验证并删除源
为啥我的 RemoveItem 功能不起作用? - 上下文 API - 反应