2016-09-23 5 views
1

Ich speichere ein .jpg Bild im iOS Dokumentenverzeichnis. Ich kann Dateien schreiben und Dateien lesen, aber wenn es darum geht, sie zu löschen, sagt es, dass es keine solche Datei gibt, aber das kann nicht sein, weil ich sie mit derselben URL lesen kann.Ich kann Dateien schreiben/lesen, aber keine Dateien löschen. SWIFT

Reading:

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

löschen:

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

Es wirft:

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

drucken fullPath pls –

+0

file: /// var/mobile/Container/Daten/Anwendung/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232 .806566.jpg – Lenny1357

Antwort

4

Ihre fullPath Variable ist ein (optional) URL. Um das zu einem Dateipfad Zeichenfolge zu konvertieren, verwenden Sie die .path Eigenschaft, nicht String-Interpolation:

fileManager.removeItem(atPath: fullPath!.path) 

Oder besser, verwenden Sie die URL direkt, ohne sie auf einen Pfad zu konvertieren:

fileManager.removeItem(at: fullPath!) 

(und loszuwerden der erzwungenen Auspacken zugunsten der Option verbindlich ... :-)

+0

wissen Sie, was das Ziel c eq uivalent wäre? – Matt

Verwandte Themen