我的应用程序从服务器下载一个zip文件,并将内容提取到设备中。我需要一种方法来查找所有的音频文件(mp3、mp4a、m4b等)。它还需要扫描所有的子目录。现在这就是我正在做的事情。
-(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:"部分会漏掉一些东西。有更好的方法来实现这一点吗?
My worry is that the "isEqualToString:" parts will miss some things
是什么意思?
你的方法没有错,但最好在比较之前使用lowercaseString
转换扩展,以确保它能处理大小写敏感性。