Manejo de archivos en iOS


Introducción

El manejo de archivos no se puede explicar intuitivamente a través de la aplicación; podemos entender el manejo de archivos de iOS a partir de los siguientes ejemplos.

Operaciones de archivos en iOS. Debido a que la aplicación está en un sandbox, los permisos de lectura y escritura de archivos están restringidos; solo se pueden leer y escribir archivos en unos pocos directorios.

Métodos utilizados en el manejo de archivos

A continuación se muestra una lista de métodos para acceder y manipular archivos.

En los siguientes ejemplos, debes reemplazar las cadenas FilePath1, FilePath y FilePath por las rutas de archivo completas para obtener la operación deseada.

Comprobar si el archivo existe

   NSFileManager *fileManager = [NSFileManager defaultManager];
   //Get documents directory
   NSArray *directoryPaths = NSSearchPathForDirectoriesInDomains
   (NSDocumentDirectory, NSUserDomainMask, YES);
   NSString *documentsDirectoryPath = [directoryPaths objectAtIndex:0];
   if ([fileManager fileExistsAtPath:@""]==YES) {
        NSLog(@"File exists");
    }    

Comparar el contenido de dos archivos

   if ([fileManager contentsEqualAtPath:@"FilePath1" andPath:@" FilePath2"]) {
      NSLog(@"Same content");
   }

Comprobar si el archivo es escribible, legible o ejecutable

  if ([fileManager isWritableFileAtPath:@"FilePath"]) {
      NSLog(@"isWritable");
   }
   if ([fileManager isReadableFileAtPath:@"FilePath"]) {
      NSLog(@"isReadable");
   }
   if ( [fileManager isExecutableFileAtPath:@"FilePath"]){
      NSLog(@"is Executable");
   }

Mover archivos

   if([fileManager moveItemAtPath:@"FilePath1" 
   toPath:@"FilePath2" error:NULL]){
      NSLog(@"Moved successfully");
   }

Copiar archivos

   if ([fileManager copyItemAtPath:@"FilePath1" 
   toPath:@"FilePath2"  error:NULL]) {
      NSLog(@"Copied successfully");
   }

Eliminar archivos

 if ([fileManager removeItemAtPath:@"FilePath" error:NULL]) {
      NSLog(@"Removed successfully");
   }
 

Leer archivos

 NSData *data = [fileManager contentsAtPath:@"Path"];
 

Escribir archivos

  [fileManager createFileAtPath:@"" contents:data attributes:nil];
Otras extensiones