Obtener imagen del directorio de documentos rápidamente

Digamos que estaba usando este código para guardar una imagen en los documentos directroy

let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) { if paths.count > 0 { if let dirPath = paths[0] as? String { let readPath = dirPath.stringByAppendingPathComponent("Image.png") let image = UIImage(named: readPath) let writePath = dirPath.stringByAppendingPathComponent("Image2.png") UIImagePNGRepresentation(image).writeToFile(writePath, atomically: true) } } } 

¿Cómo podría recuperarlo? Teniendo en cuenta que en iOS8, la ruta exacta cambia a menudo

Está buscando la ruta del directorio del documento en tiempo de ejecución para escribir la imagen; para leerla de nuevo, puede usar la lógica exacta:

Swift 3

 let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) if let dirPath = paths.first { let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent("Image2.png") let image = UIImage(contentsOfFile: imageURL.path) // Do whatever you want with the image } 

Swift 2

 let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) { if paths.count > 0 { if let dirPath = paths[0] as? String { let readPath = dirPath.stringByAppendingPathComponent("Image2.png") let image = UIImage(contentsOfFile: readPath) // Do whatever you want with the image } } } 

Mejor como una extensión.

 extension URL { static var documentsDirectory: URL { let documentsDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! return try! documentsDirectory.asURL() } static func urlInDocumentsDirectory(with filename: String) -> URL { return documentsDirectory.appendingPathComponent(filename) } } 

Usado así:

 let path = URL.urlInDocumentsDirectory(with: filename).path let image = UIImage(contentsOfFile: path) 

Swift 2

Si desea obtener un archivo de su directorio de documentos en Swift 2:

 let path: String? = NSBundle.mainBundle().pathForResource("imageName", ofType: "png", inDirectory: "DirectoryName/Images") let imageFromPath = UIImage(contentsOfFile: path!)! self.myImage.image = imageFromPath 

Espero que ayude a alguien

Cargue varias imágenes de la carpeta o directorio. – Swift 4

Aquí está la imagen adjunta para mostrar, lo que queremos lograr en el siguiente código. enter image description here

Aquí está el código para encontrar las múltiples imágenes de la carpeta en el directorio de documentos. He escrito un método para hacer lo mismo.

En el código estamos pasando el “Nombre de la carpeta” (es decir, Rojo) y obteniendo los contenidos de ese directorio. A cambio, obtuvimos el conjunto de imágenes nombre.

  static func loadImagesFromAlbum(folderName:String) -> [String]{ let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) var theItems = [String]() if let dirPath = paths.first { let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(folderName) do { theItems = try FileManager.default.contentsOfDirectory(atPath: imageURL.path) return theItems } catch let error as NSError { print(error.localizedDescription) return theItems } } return theItems } 

Aquí está el resultado del código dado. enter image description here

Espero eso ayude.

Gracias