首页 > 解决方案 > removeItem(at: ) 成功删除目标文件时抛出异常

问题描述

在我的应用程序中,有一个函数可以删除给定 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

标签: swift

解决方案


我认为你的代码应该是:

try FileManager.default.removeItem(at: url)

推荐阅读