verificar validar una saber para macro funcion existencia existe comprobar carpeta archivo objective-c cocoa

objective c - validar - ¿Cómo verificar si existe una carpeta en Cocoa & Objective-C?



saber si un archivo existe java (5)

¿Cómo verificar si existe una carpeta (directorio) en Cocoa usando Objective-C?


Algunos buenos consejos de Apple en NSFileManager.h con respecto al control del sistema de archivos:

"Es mucho mejor intentar una operación (como cargar un archivo o crear un directorio) y manejar el error con elegancia de lo que es tratar de determinar de antemano si la operación tendrá éxito. Intentar predecir el comportamiento en función del estado actual de el sistema de archivos o un archivo particular en el sistema de archivos está fomentando un comportamiento extraño frente a las condiciones de carrera del sistema de archivos ".


NSFileManager es el mejor lugar para buscar API relacionadas con archivos. La API específica que necesita es - fileExistsAtPath:isDirectory:

Ejemplo:

NSString *pathToFile = @"..."; BOOL isDir = NO; BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:pathToFile isDirectory:&isDir]; if(isFile) { //it is a file, process it here how ever you like, check isDir to see if its a directory } else { //not a file, this is an error, handle it! }


Si tiene un objeto NSURL como path , es mejor utilizar la ruta para convertirlo en NSString .

NSFileManager*fm = [NSFileManager defaultManager]; NSURL* path = [[[fm URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] objectAtIndex:0] URLByAppendingPathComponent:@"photos"]; NSError *theError = nil; if(![fm fileExistsAtPath:[path path]]){ NSLog(@"dir doesn''t exists"); }else NSLog(@"dir exists");


[NSFileManager fileExistsAtPath: isDirectory:]

Returns a Boolean value that indicates whether a specified file exists. - (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory Parameters path The path of a file or directory. If path begins with a tilde (~), it must first be expanded with stringByExpandingTildeInPath, or this method will return NO. isDirectory Upon return, contains YES if path is a directory or if the final path element is a symbolic link that points to a directory, otherwise contains NO. If path doesn’t exist, the return value is undefined. Pass NULL if you do not need this information. Return Value YES if there is a file or directory at path, otherwise NO. If path specifies a symbolic link, this method traverses the link and returns YES or NO based on the existence of the file or directory at the link destination.


Use el NSFileManager fileExistsAtPath:isDirectory: . Vea los documentos de Apple here .