 <p><strong>edit</strong> Martin's answer is far superior to this one. His is the correct answer.</p> <hr> <p>There are a couple ways to do it. Probably the simplest would just be to build a giant OR predicate:</p> <pre><code>NSArray *extensions = [NSArray arrayWithObjects:@".mp4", @".mov", @".m4v", @".pdf", @".doc", @".xls", nil]; NSMutableArray *subpredicates = [NSMutableArray array]; for (NSString *extension in extensions) { [subpredicates addObject:[NSPredicate predicateWithFormat:@"SELF ENDSWITH %@", extension]]; } NSPredicate *filter = [NSCompoundPredicate orPredicateWithSubpredicates:subpredicates]; NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectoryPath error:nil]; NSArray *files = [dirContents filteredArrayUsingPredicate:filter]; </code></pre> <p>This will create a predicate that's equivalent to:</p> <pre><code>SELF ENDSWITH '.mp4' OR SELF ENDSWITH '.mov' OR SELF ENDSWITH '.m4v' OR .... </code></pre>