2017-04-27 4 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

URL関連APIを使用することです。しかし、それは、デバイス上のファイルを削除するのですか? 'path'が設定されていることを確認しましたか? – 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されます。

最善の解決策は

let fileURL = dir.appendingPathComponent(file) 

...

try FileManager.default.removeItem(at: fileURL) 
関連する問題