ver quedan los las guardan donde descargas descargados crear como carpetas carpeta archivos app iphone ios resources

iphone - quedan - Obteniendo una lista de archivos en la carpeta Recursos-iOS



donde se guardan los archivos descargados de safari en iphone (7)

Digamos que tengo una carpeta en mi carpeta "Recursos" de mi aplicación de iPhone llamada "Documentos".

¿Hay alguna manera de que pueda obtener una matriz o algún tipo de lista de todos los archivos incluidos en esa carpeta en tiempo de ejecución?

Entonces, en el código, se vería así:

NSMutableArray *myFiles = [...get a list of files in Resources/Documents...];

es posible?



Swift 4:

Si tiene que ver con subdirectorios "Relativo al proyecto" (carpetas azules) puede escribir:

func getAllPListFrom(_ subdir:String)->[URL]? { guard let fURL = Bundle.main.urls(forResourcesWithExtension: "plist", subdirectory: subdir) else { return nil } return fURL }

Uso :

if let myURLs = getAllPListFrom("myPrivateFolder/Lists") { // your code.. }


Listado de todos los archivos en un directorio

NSFileManager *fileManager = [NSFileManager defaultManager]; NSURL *bundleURL = [[NSBundle mainBundle] bundleURL]; NSArray *contents = [fileManager contentsOfDirectoryAtURL:bundleURL includingPropertiesForKeys:@[] options:NSDirectoryEnumerationSkipsHiddenFiles error:nil]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"pathExtension ENDSWITH ''.png''"]; for (NSString *path in [contents filteredArrayUsingPredicate:predicate]) { // Enumerate each .png file in directory }

Recursivamente enumerando archivos en un directorio

NSFileManager *fileManager = [NSFileManager defaultManager]; NSURL *bundleURL = [[NSBundle mainBundle] bundleURL]; NSDirectoryEnumerator *enumerator = [fileManager enumeratorAtURL:bundleURL includingPropertiesForKeys:@[NSURLNameKey, NSURLIsDirectoryKey] options:NSDirectoryEnumerationSkipsHiddenFiles errorHandler:^BOOL(NSURL *url, NSError *error) { NSLog(@"[Error] %@ (%@)", error, url); }]; NSMutableArray *mutableFileURLs = [NSMutableArray array]; for (NSURL *fileURL in enumerator) { NSString *filename; [fileURL getResourceValue:&filename forKey:NSURLNameKey error:nil]; NSNumber *isDirectory; [fileURL getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:nil]; // Skip directories with ''_'' prefix, for example if ([filename hasPrefix:@"_"] && [isDirectory boolValue]) { [enumerator skipDescendants]; continue; } if (![isDirectory boolValue]) { [mutableFileURLs addObject:fileURL]; } }

Para obtener más información sobre NSFileManager here


Puede obtener la ruta al directorio de Resources esta manera,

NSString * resourcePath = [[NSBundle mainBundle] resourcePath];

A continuación, agregue los Documents a la ruta,

NSString * documentsPath = [resourcePath stringByAppendingPathComponent:@"Documents"];

Luego puede usar cualquiera de las API de listado de directorio de NSFileManager .

NSError * error; NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:&error];

Nota : Al agregar una carpeta de origen al paquete, asegúrese de seleccionar la opción "Crear referencias de carpeta para cualquier carpeta agregada al copiar"


Puedes probar este código también:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSError * error; NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error]; NSLog(@"directoryContents ====== %@",directoryContents);


Versión Swift:

if let files = try? FileManager.default.contentsOfDirectory(atPath: Bundle.main.bundlePath ){ for file in files { print(file) } }


Swift 3 (y URL que regresan)

let url = Bundle.main.resourceURL! do { let urls = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys:[], options: FileManager.DirectoryEnumerationOptions.skipsHiddenFiles) } catch { print(error) }