NSDirectoryEnumerator迭代元素无法比较后缀

时间:2017-09-06 09:18:02

标签: ios objective-c file

我正在使用NSDirectoryEnmerator查找后缀为pngjpg的所有文件,代码如下:

NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtURL:containerURL includingPropertiesForKeys:[NSArray array] options:0 errorHandler:^BOOL(NSURL *url, NSError *error) {
    // handle error
    return NO;
}];

NSString *fileOrDirectory = nil;
while ((fileOrDirectory = [directoryEnumerator nextObject])) {
    if([fileOrDirectory hasSuffix:@".jpg"] || [fileOrDirectory hasSuffix:@".png"]){
        NSLog(@" find a image file %@", fileOrDirectory );
    }

}

但是有一个错误表示NSURL没有方法hasSuffix

enter image description here

发生了什么以及如何使这项工作?迭代元素的类型究竟是什么?上面的代码经常由posts建议,并且被认为是NSString,但它无法正常工作

1 个答案:

答案 0 :(得分:1)

enumeratorAtURL方法适用于NSURL个对象而非字符串(异常原因清楚地显示),您只需比较pathExtension

if ([fileOrDirectory.pathExtension isEqualToString:@"jpg"] || 
    [fileOrDirectory.pathExtension isEqualToString:@"png"]) { ...