ver todos pasar los gestor explorador encontrar documentos archivos administrador iphone folder new-operator document nsfilemanager

todos - ver archivos en iphone 7



Crear una carpeta dentro de la carpeta de documentos en las aplicaciones de iOS (9)

El siguiente código puede ayudar a crear el directorio:

-(void) createDirectory : (NSString *) dirName { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Fetch path for document directory dataPath = (NSMutableString *)[documentsDirectory stringByAppendingPathComponent:dirName]; NSError *error; if (![[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]) { NSLog(@"Couldn''t create directory error: %@", error); } else { NSLog(@"directory created!"); } NSLog(@"dataPath : %@ ",dataPath); // Path of folder created }

Uso:

[self createDirectory:@"MyFolder"];

Resultado:

directorio creado!

dataPath: / var / mobile / Applications / BD4B5566-1F11-4723-B54C-F1D0B23CBC / Documents / MyFolder

Solo quiero crear nuevas carpetas en la carpeta de documentos de mi aplicación para iPhone.

¿Alguien sabe cómo hacer eso?

¡Aprecio tu ayuda!


Esto funciona bien para mi,

NSFileManager *fm = [NSFileManager defaultManager]; NSArray *appSupportDir = [fm URLsForDirectory:NSDocumentsDirectory inDomains:NSUserDomainMask]; NSURL* dirPath = [[appSupportDir objectAtIndex:0] URLByAppendingPathComponent:@"YourFolderName"]; NSError* theError = nil; //error setting if (![fm createDirectoryAtURL:dirPath withIntermediateDirectories:YES attributes:nil error:&theError]) { NSLog(@"not created"); }


La solución Swift 2 :

let documentDirectoryPath: String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first! if !NSFileManager.defaultManager().fileExistsAtPath(documentDirectoryPath) { do { try NSFileManager.defaultManager().createDirectoryAtPath(documentDirectoryPath, withIntermediateDirectories: false, attributes: nil) } catch let createDirectoryError as NSError { print("Error with creating directory at path: /(createDirectoryError.localizedDescription)") } }


Lo hago de la siguiente manera:

NSError *error; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/MyFolder"]; if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder


No me gusta "[paths objectAtIndex: 0]" porque si Apple agrega una nueva carpeta que comienza con "A", "B" o "C", la carpeta "Documentos" no es la primera carpeta en el directorio.

Mejor:

NSString *dataPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/MyFolder"]; if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder


No tengo suficiente reputación para comentar la respuesta de Manni, pero [paths objectAtIndex: 0] es la forma estándar de obtener el Directorio de Documentos de la aplicación

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StandardBehaviors/StandardBehaviors.html#//apple_ref/doc/uid/TP40007072-CH4-SW6

Como la función NSSearchPathForDirectoriesInDomains se diseñó originalmente para Mac OS X, donde podría haber más de uno de estos directorios, devuelve una matriz de rutas en lugar de una única ruta. En iOS, la matriz resultante debe contener la ruta única al directorio. El listado 3-1 muestra un uso típico de esta función.

Listado 3-1 Obteniendo la ruta al directorio de Documentos de la aplicación

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0];


Solución Swift 3:

private func createImagesFolder() { // path to documents directory let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first if let documentDirectoryPath = documentDirectoryPath { // create the custom folder path let imagesDirectoryPath = documentDirectoryPath.appending("/images") let fileManager = FileManager.default if !fileManager.fileExists(atPath: imagesDirectoryPath) { do { try fileManager.createDirectory(atPath: imagesDirectoryPath, withIntermediateDirectories: false, attributes: nil) } catch { print("Error creating images folder in documents dir: /(error)") } } } }


Swift 1.2 y iOS 8

Cree un directorio personalizado (name = "MyCustomData") dentro del directorio de documentos, pero solo si el directorio no existe.

// path to documents directory let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String // create the custom folder path let myCustomDataDirectoryPath = documentDirectoryPath.stringByAppendingPathComponent("/MyCustomData") // check if directory does not exist if NSFileManager.defaultManager().fileExistsAtPath(myCustomDataDirectoryPath) == false { // create the directory var createDirectoryError: NSError? = nil NSFileManager.defaultManager().createDirectoryAtPath(myCustomDataDirectoryPath, withIntermediateDirectories: false, attributes: nil, error: &createDirectoryError) // handle the error, you may call an exception if createDirectoryError != nil { println("Handle directory creation error...") } }


Swift 3.0

var error: Error? var paths: [Any] = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) var documentsDirectory: String = paths[0] as? String ?? "" // Get documents folder var dataPath: String = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("/MyFolder").absoluteString if !FileManager.default.fileExists(atPath: dataPath) { try? FileManager.default.createDirectory(atPath: dataPath, withIntermediateDirectories: false, attributes: nil) }