ChenSmile
ChenSmile

Reputation: 3441

How to fetch various folder content inside Document Directory in iOS?

I am able to list the content inside Document Directory in Table view. But i have 50 folders that i have downloaded from various sources in document directory. Now i want fetch all the 50 folders content along with document directory content...

//This is my Code...
NSArray * paths = NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSError * error;
NSArray *extensions = [NSArray arrayWithObjects:@"mp4", @"folder", @"mov", @"m4v", @"pdf", @"doc", @"xls", @"mp3" ,nil];
directoryContents =  [[NSFileManager defaultManager]
                      contentsOfDirectoryAtPath:documentsDirectory error:&error];
directoryContents = [directoryContents filteredArrayUsingPredicate: 
                      [NSPredicate predicateWithFormat:@"pathExtension IN %@", extensions ]];
NSLog(@"directoryContents ====== %@",directoryContents);

Upvotes: 1

Views: 1531

Answers (1)

ChenSmile
ChenSmile

Reputation: 3441

test=[[NSMutableArray alloc]init];// allocate mutable array Globally
 NSArray * paths = NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];

NSDirectoryEnumerator *de = [[NSFileManager defaultManager] enumeratorAtPath:documentsDirectory] ;

NSString *file;
while ((file = [de nextObject]))

 if (([[file pathExtension] isEqualToString:@"mp3"])  ||  ([[file pathExtension]        isEqualToString:@"mp4"]) ||  ([[file pathExtension] isEqualToString:@"mov"]) || ([[file pathExtension] isEqualToString:@"avi"]) || ([[file pathExtension] isEqualToString:@"mkv"]))

    [test addObject:file.lastPathComponent];
    NSLog(@"%@",test);

// This will list only all content inside folder or subfolder but not the folder. Just you have to pass the string matching to your extension in if condition

Upvotes: 3

Related Questions