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 - 反应

通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。

QGraphicsItem删除item崩溃