titletextattributes color bar ios swift nsdocumentdirectory-ios8

ios - color - Obtener imagen del directorio de documentos swift



uinavigationitem title color (4)

Está encontrando la ruta del directorio del documento en tiempo de ejecución para escribir la imagen, para leerla nuevamente, 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 } } }

Digamos que estuve 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 lo recuperaría entonces? Teniendo en cuenta que en iOS8 la ruta exacta cambia a menudo


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

Utilizado de esta manera:

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.


Carga múltiples 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.

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 obtenemos el contenido de ese directorio. A cambio conseguimos la matriz de nombre de las imágenes.

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.

Espero eso ayude.

Gracias