ios - NSDirectoryEnumerator 迭代元素无法比较后缀

标签 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 但它无法工作

最佳答案

enumeratorAtURL 方法适用于 NSURL 对象而不是字符串(异常原因清楚地揭示了这一点),您可以简单地比较 pathExtension:

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

关于ios - NSDirectoryEnumerator 迭代元素无法比较后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46071326/

相关文章:

ios - 如何在不注册远程静默通知的情况下获取要使用的推送 token ?

objective-c - 改变 NSString 却什么也没有得到

objective-c - NSTimer 导致一些奇怪的延迟

python - 来自不同进程的文件同时读/写操作 : working on Windows but not on Linux

ios - 从 Parse iOS 下载图像

iphone - 将大数从 NSString 转换为 NSNumber

ios - 使用RestKit发送POST不返回JSON内容

objective-c - 在 C 预处理器中生成随机标识符以避免重复的链接器符号

c# - C# 将数据保存到文件中

Java:为什么这不创建最后一个文件夹?