如何搜索图像文件

问题描述:

有无论如何检查我的iPhone中是否存在特定的图像文件。可以说我的图片名称是IMG_123.JPG。我想搜索这个图像,如果它存在,我想使用该文件创建一个NSInputStream对象。如果图像不在NSBundle中,则可以将其保存在照片库中或某处。如何搜索图像文件

请帮帮我。 感谢

UPDATE

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectory = [pathArray objectAtIndex:0]; 
NSString* dataPath = [documentsDirectory stringByAppendingPathComponent:@"IMG_2594.JPG"]; 

更新2

获取图像时,用户点击拾取图像

copyOfOriginalImage = [UIImage imageWithCGImage:[[imageAsset defaultRepresentation] fullResolutionImage]]; 

将图像转换成NSData的

imageData = UIImageJPEGRepresentation(copyOfOriginalImage, 1.0); 

然后,我把它转换为base64,

strEncoded=[imageData base64EncodedStringWithOptions:0]; 
+0

图像文件是在沙盒中的文档目录? –

+0

不,我只是将它保存在我的照片库 – Irrd

+0

可以说它是由手机相机拍摄的图像。我可以使用图像选择器获取它的名称 – Irrd

您的图片可以在你的应用程序documentdirectoryassetsappbundle

位于photolibrary的图片,您无法将其称为应用程序数据库的一部分。

所以,你可以检查你的图像提供documentdirectory或类似tempdirectorycustomdirectory如果你喜欢的任何目录,

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

NSFileManager *manager = [NSFileManager defaultManager]; 

NSArray *filesIndir = [manager contentsOfDirectoryAtPath:path error:nil]; 

if ([filesIndir containsObject:@"IMG_123.JPG"]) { 

    NSLog(@"document directory contains : IMG_123.JPG"); 
} 

它会在文档目录直接检查。如果您在文档目录中创建自定义目录,请提供它的路径。

现在,如果你的形象是在应用程序包,那么你可以检查它喜欢,

UIImage *image = [UIImage imageNamed:@"IMG_123.JPG"]; 

if (image) { 

    NSLog(@"yes image available in app bundle"); 
} 

如果你的形象是assests,那么你可以检查它像,

UIImage *image2 = [UIImage imageNamed:@"IMG_123"]; 

if (image2) { 

    NSLog(@"yes image available in assets"); 
} 

现在,检查图片在照片库中可用,这是一个有点关键的任务,你应该有所有图像的列表,然后你可以检查它是否可用。为此,您必须使用ALAssetsLibrary

请参考This SO answer进行管理。您也可以参考this so post

+0

我已经完成的工作是首先从资产库中获取图像名称。然后我想搜索它的真实路径。看到我更新的问题..现在我想读取使用NSInputStream这个实际的文件。 – Irrd

+0

它是正确的,我已经完成,我可以阅读使用NSInputStream这条路径的实际文件? – Irrd

+0

你想实现什么?告诉我要求 – Lion