iOS - Gestion des fichiers

La gestion des fichiers ne peut pas être expliquée visuellement avec l'application et, par conséquent, les principales méthodes utilisées pour gérer les fichiers sont expliquées ci-dessous. Notez que le bundle d'applications ne dispose que d'une autorisation de lecture et que nous ne pourrons pas modifier les fichiers. Vous pouvez de toute façon modifier le répertoire des documents de votre application.

Méthodes utilisées dans la gestion des fichiers

Les méthodes utilisées pour accessing et manipulatingles fichiers sont décrits ci-dessous. Ici, nous devons remplacer les chaînes FilePath1, FilePath2 et FilePath par nos chemins de fichiers complets requis pour obtenir l'action souhaitée.

Vérifier si un fichier existe sur un chemin

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

Comparaison de deux contenus de fichiers

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

Vérifier si inscriptible, lisible et exécutable

if ([fileManager isWritableFileAtPath:@"FilePath"]) {
   NSLog(@"isWritable");
}

if ([fileManager isReadableFileAtPath:@"FilePath"]) {
   NSLog(@"isReadable");
}

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

Déplacer le fichier

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

Copier un fichier

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

Effacer le fichier

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

Lire le fichier

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

Ecrire un fichier

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