0

是否有可能在文件夹及其所有子文件夹中搜索某种类型的所有文件(例如 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 文件,还是有更简单的解决方案?

提前致谢

4

1 回答 1

3

您可以通过获取所有子路径然后过滤它们来轻松实现这一点。所以替换你contentsOfDirectoryAtPathsubpathsOfDirectoryAtPath,它应该可以工作。该函数进行深度枚举,因此还包括所有子目录。

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

功能说明: 苹果iOS开发者库

于 2013-08-30T04:09:10.130 回答