2015-12-23 33 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