FileManager.default.removeItem not removing file [duplicate]

天涯浪子 提交于 2019-12-01 02:02:15

问题


I'm trying to remove a file from the documents directory using FileManager.default.removeItem but is not deleting the file on the simulator. Here is my code:

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)
                }
            }
        }

But I always fails. Any of you knows why it fails?


回答1:


You can write like this:

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



回答2:


absoluteString is the wrong API, the correct property for the file:// scheme is path.

The best solution is to use the URL related API

let fileURL = dir.appendingPathComponent(file)

...

try FileManager.default.removeItem(at: fileURL)


来源:https://stackoverflow.com/questions/43651481/filemanager-default-removeitem-not-removing-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!