FileManager.default.removeItem 不删除文件 [重复]

问题描述 投票:0回答:2

我正在尝试使用

FileManager.default.removeItem
从文档目录中删除文件,但没有删除模拟器上的文件。这是我的代码:

if let dir = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {
            do{
                let path = dir.appendingPathComponent(file).absoluteString
                do{
                    try FileManager.default.removeItem(atPath:path)
                }catch{
                    print(error)
                }
            }
        }

但我总是失败。你们有人知道它为什么失败吗?

ios swift swift3 nsfilemanager
2个回答
16
投票

你可以这样写:

var filemanager = FileManager.default
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,true)[0] as NSString
let destinationPath = documentsPath.appendingPathComponent("Filename.jpg")
try! filemanager.removeItem(atPath: destinationPath)

11
投票

absoluteString
是错误的 API,
file://
方案的正确属性是
path
.

最好的解决方案是使用URL相关的API

let fileURL = dir.appendingPathComponent(file)

...

try FileManager.default.removeItem(at: fileURL)
© www.soinside.com 2019 - 2024. All rights reserved.