如何过滤数组并只保留以 .png 结尾的字符串
How to filter array and let stay only strings end with .png
我正在从文件夹中读取文件,文件夹包含 .pngs
但我在每个文件夹中另外得到 Thumb.db
文件,其他所有文件都是 .png。我阅读的内容为
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 中过滤数组的惯用方法是 NSPredicate
:
NSArray *filtered = [directoryContent filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"pathExtension = png"]];
谓词中提到的 pathExtension
方法是 NSString
上的一种方法,它试图将字符串解释为文件系统路径,return 扩展名。
我认为通过使用 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];
我正在从文件夹中读取文件,文件夹包含 .pngs
但我在每个文件夹中另外得到 Thumb.db
文件,其他所有文件都是 .png。我阅读的内容为
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 中过滤数组的惯用方法是 NSPredicate
:
NSArray *filtered = [directoryContent filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"pathExtension = png"]];
谓词中提到的 pathExtension
方法是 NSString
上的一种方法,它试图将字符串解释为文件系统路径,return 扩展名。
我认为通过使用 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];