2016-09-23 67 views
1

我在iOS文檔目錄中存儲.jpg圖像。我可以編寫文件和讀取文件,但是在刪除它時說它沒有這樣的文件,但這不能,因爲我可以用相同的URL讀取它。能夠寫入/讀取文件但無法刪除文件SWIFT

閱讀:

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
let path = NSURL(fileURLWithPath: paths[0] as String) 
let fullPath = path.appendingPathComponent(info["pi"] as! String) 

let data = NSData(contentsOf: fullPath!) 

刪除:

let fileManager = FileManager.default 
fileManager.delegate = self 
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
let path = NSURL(fileURLWithPath: paths[0] as String) 
let fullPath = path.appendingPathComponent(info["pi"] as! String) 

      do { 
       try fileManager.removeItem(atPath: "\(fullPath!)") 
      } catch { 
       print("\(error)") 
      } 

它拋出:

Error Domain=NSCocoaErrorDomain Code=4 "「image_496251232.806566.jpg」 couldn’t be removed." UserInfo={NSUnderlyingError=0x1758eb40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}, NSFilePath=file:///var/mobile/Containers/Data/Application/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232.806566.jpg, NSUserStringVariant=(
    Remove 
)} 
+0

print fullPath pls –

+0

file:/// var/mobile/Containers/Data/Application/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232 .806566.jpg – Lenny1357

回答

4

fullPath變量是一個(可選)URL。要轉換的文件路徑字符串,請使用.path屬性,而不是字符串插值:

fileManager.removeItem(atPath: fullPath!.path) 

或者更好,使用URL的情況下直接將其轉換爲路徑:

fileManager.removeItem(at: fullPath!) 

(,擺脫強制展開以支持選項綁定... :-)

+0

你知道什麼目標c eq uivalent會是? – Matt