是否有可能在文件夹及其所有子文件夹中搜索某种类型的所有文件(例如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文件或者是否有更简单的解决方案?
提前致谢
答案 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];