我在文档文件夹中有一些图像文件,名称看起来像a_b.png,其中a是每个用户的ID(它是一个数字),b是他保存的图片的名称。所以我想找到用户的所有图片,例如id = 1并将它们保存到一个数组中。我浏览每个图像文件,我想比较文件的名称与模式1 _ * .png。我试过了
NSString *searchterm = [NSString stringWithFormat:@"%lu_*.png",clientID];
for(NSString filename in docFiles)
{
if([fileName isEqualTostring:searchterm])
{.....}
}
但我没有结果。
关于我如何实现这一目标的任何想法?
答案 0 :(得分:1)
我会:
[NSFileManager contentsOfDirectoryAtPath:error:]
枚举该客户端子目录中的文件。答案 1 :(得分:0)
尝试检查前缀和后缀。我想这无论如何都会比正则表达更有效,而且更容易阅读。
if([fileName hasPrefix:[NSString stringWithFormat:@"%ld_",clientID]] && [fileName hasSuffix:@".png") {
}
答案 2 :(得分:0)
如果有大型建议你做你想要的星号通配符,你应该使用NSPredicate来过滤docFiles。例如:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", searchterm];
NSArray *results = [docFiles filteredArrayUsingPredicate:predicate];
但是,木马的回答似乎是一种更好的做法。