如何解决如何遍历目录中的所有图像文件?
| 我的应用程序使用iTunes文件共享。用户可以将文件添加到“文档”目录。 我必须阅读这些文件,但要确保它们只是图像,而不是文本文件或其他“垃圾”。 如何遍历目录中的文件并仅识别图像文件? 我以为我必须这样做:NSMutableArray *retval = [NSMutableArray array];
NSArray *files = [fileManager contentsOfDirectoryAtPath:documentsDirPath error:&error];
if (files == nil) {
// error...
}
for (NSString *file in files) {
if ([file.pathExtension compare:@\"png\" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
NSString *fullPath = [documentsDirPath stringByAppendingPathComponent:file];
[retval addObject:fullPath];
}
}
但这出于某些原因是不好的。我需要一个HUUUUUGE if子句来捕获所有可能的图像文件类型,并且它们都有DOZENS。
是否存在一种更智能的方式来真正收集所有图像文件,而不管是否是.png,.bmp,.jpg,.jpeg,.jpeg2000,.tiff,.raw等。
我稍微记得,有些文件属性告诉了文件的一般类型。我相信有一些抽象图像键。但是也许还有更好的方法?
解决方法
是的,您可以使用统一类型标识符。这里是:
NSString *file = @\"…\"; // path to some file
CFStringRef fileExtension = (CFStringRef) [file pathExtension];
CFStringRef fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,fileExtension,NULL);
if (UTTypeConformsTo(fileUTI,kUTTypeImage)) NSLog(@\"This is an image\");
CFRelease(fileUTI);
,即使文件名建议使用图像文件,也不必一定是图像。您可以尝试从数据中实例化一个“ 2”,如果文件失败则拒绝该文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。