简单实现获取指定路径中的所有指定类型的文件功能。
功能实现
@interface ResourceFinder : NSObject
+ (void)test:(NSString * const)string;
+ (vector<string>)getAllFilesWithinPath:(NSString *) path :(vector<string>&) t_files;
@end
@implementation ResourceFinder
+ (void)test:(NSString * const)string{
}
/**
* @breif 遍历所有png文件,文件类型可以修改
* @param path : 目标路径
* @param t_files : path中找到的所有符合条件的文件名
*/
+ (vector<string>)getAllFilesWithinPath:(NSString *) path :(vector<string>&) t_files
{
NSFileManager * fileManger = [NSFileManager defaultManager];
BOOL isDir = NO;
BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&isDir];
if (isExist) {
if (isDir) {
NSArray * dirArray = [fileManger contentsOfDirectoryAtPath:path error:nil];
NSString * subPath = nil;
for (NSString * str in dirArray) {
subPath = [path stringByAppendingPathComponent:str];
BOOL issubDir = NO;
[fileManger fileExistsAtPath:subPath isDirectory:&issubDir];
[self showAllFileWithPath:subPath :t_files];
}
}else{
NSString *fileName = [[path componentsSeparatedByString:@"/"] lastObject];
if ([fileName hasSuffix:@".png"]) // 文件类型
{
//do anything you want
NSLog(@"%@",fileName);
t_files.push_back(string([fileName UTF8String]));
}
}
}else{
NSLog(@"this path is not exist!");
}
return t_files;
}
@end
调用方法
NSString* path0 = "./";
vector<string> t_files;
[ResourceFinder getAllFilesWithinPath:path0 :t_files];