Ios 如何筛选数组并使仅保留字符串以.png结尾
我正在从文件夹中读取文件,文件夹包含Ios 如何筛选数组并使仅保留字符串以.png结尾,ios,objective-c,ios7,ios8,nsfilemanager,Ios,Objective C,Ios7,Ios8,Nsfilemanager,我正在从文件夹中读取文件,文件夹包含.pngs,但我在每个文件夹中都会得到Thumb.db文件,其他所有文件夹都是.pngs。我读的内容是 NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL]; 如何删除数组中包含.db的所有文件,或仅保留以.png结尾的文件?请尝试以下代码: NSArray *directoryContent = [
.pngs
,但我在每个文件夹中都会得到Thumb.db
文件,其他所有文件夹都是.pngs。我读的内容是
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
如何删除数组中包含.db
的所有文件,或仅保留以.png
结尾的文件?请尝试以下代码:
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
NSMutableArray *imageArray = [[NSMutableArray alloc] init];
for (NSString *path in directoryContent)
{
if ([path hasSuffix:@".png"])
{
[imageArray addObject: path];
}
}
NSLog (@"Number of images : %d" , [imageArray count]);
Cocoa中过滤数组的惯用方法是:
谓词中提到的方法是
NSString
上的一个方法,它试图将字符串解释为文件系统路径,并返回扩展名。我认为使用NSPredicate方法可以获得精确的值
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
NSString *str = @".png"
NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",str];
NSArray *predicateArray = [directoryContent filteredArrayUsingPredicate:sPredicate];
这是一个相对简单的任务,在循环中有一个
for。你尝试过什么?NSPredicate的可能副本是一个更简单的解决方案是的,即使我之前不知道。
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
NSString *str = @".png"
NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",str];
NSArray *predicateArray = [directoryContent filteredArrayUsingPredicate:sPredicate];