2017-04-27 132 views
0

我想从文档目录中使用FileManager.default.removeItem删除文件,但不是删除模拟器上的文件。这里是我的代码: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) 
       } 
      } 
     } 

但我总是失败。你们谁都知道它为什么会失败?

+0

但它删除设备上的文件吗?你确认'路径'已设置并存在? – shallowThought

+0

let path = dir.appendingPathComponent(file).path试试这个 – Rivendell

回答

2

你可以这样写:

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是错误的API,正确的属性为file://方案path

最好的解决办法是使用相关的API

let fileURL = dir.appendingPathComponent(file) 

网址...

try FileManager.default.removeItem(at: fileURL)