iOS:在cashes文件夹和每个子文件夹中搜索视频文件

时间:2013-01-24 13:14:21

标签: ios search directory subdirectory

是否有可能在文件夹及其所有子文件夹中搜索某种类型的所有文件(例如mp4)?到目前为止,我可以使用此代码一次为一个文件夹:

NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm contentsOfDirectoryAtPath:cachesPath error:nil];
NSPredicate *fltr = [NSPredicate predicateWithFormat:@"self ENDSWITH '.mp4'"];
NSArray *filesWithAttr = [dirContents filteredArrayUsingPredicate:fltr];

NSLog(@"%@", filesWithAttr);

但是我的cashes文件夹中有很多子文件夹。我是否必须通过它们中的每一个并检查mp4文件或者是否有更简单的解决方案?

提前致谢

1 个答案:

答案 0 :(得分:3)

您可以通过获取所有子路径然后过滤它们来轻松实现此目的。因此,将contentsOfDirectoryAtPath替换为subpathsOfDirectoryAtPath,它应该可行。该函数执行深枚举,因此还包括所有子目录。

NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm subpathsOfDirectoryAtPath:cachesPath error:nil];
NSPredicate *fltr = [NSPredicate predicateWithFormat:@"self ENDSWITH '.mp4'"];
NSArray *filesWithAttr = [dirContents filteredArrayUsingPredicate:fltr];

功能描述: Apple iOS Developer Library