2015-12-23 4 views
1

Мое приложение загружает zip-файл с сервера и извлекает содержимое на устройство. Мне нужен способ найти все аудиофайлы (mp3, mp4a, m4b и т. Д.). Также нужно сканировать все подкаталоги. Сейчас это то, что я делаю.Как сканировать аудиофайлы в iOS

-(NSArray *)audioPathsInDirectory:(NSString *)directory { 
    NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtPath:directory]; 
    NSMutableArray *audioPathArray = [NSMutableArray array]; 
    NSString *partialFilePath; 
    while (partialFilePath = [enumerator nextObject]) { 
     if ([[partialFilePath pathExtension] isEqualToString:@"m4b"] || 
      [[partialFilePath pathExtension] isEqualToString:@"m4a"] || 
      [[partialFilePath pathExtension] isEqualToString:@"mp3"]) { 
      [audioPathArray addObject:partialFilePath]; 
     } 
    } 
    return audioPathArray; 
} 

Мое беспокойство состоит в том, что части «isEqualToString:» будут пропускать некоторые вещи. Есть ли лучший способ сделать это?

ответ

0

Что вы подразумеваете под My worry is that the "isEqualToString:" parts will miss some things?

Нет ничего плохого в вашем подходе, но лучше преобразовать расширение, используя lowercaseString, прежде чем сравнивать, чтобы убедиться в его чувствительности к регистру.

+0

Есть больше расширений аудио, которые эти три. Есть ли общий способ просто искать любой тип звука? – Hackmodford

+0

Насколько я знаю, такой вещи нет. Вы можете создать свою собственную вспомогательную функцию, где вы можете определить все типы аудио, которые вы можете поддерживать. Его легко расширить, поддерживать и повторно использовать. – brianLikeApple

Смежные вопросы