提取扩展名并将图像名称保存在数组中

时间:2015-02-10 19:58:00

标签: ios arrays nsarray

我在" ProjectImages"中的图像很少。文件夹,并希望从上面的文件夹中检索图像文件名并将其存储在数组中,然后我想提取这些图像文件的扩展名并将其存储在另一个数组中。我能够从文件夹中检索图像文件名并提取扩展名,但我不知道如何将提取的文件名存储在另一个数组中。以下是代码

//get image name from the folder
    NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSString *directory = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"ProjectImages"];

    NSArray *files=[fileMgr contentsOfDirectoryAtPath:directory error:&error];

//extract the extension
NSString *imageNames=nil;
    for (NSString *name in files) {
        if (!imageNames) imageNames = [[name lastPathComponent] stringByDeletingPathExtension];
        else imageNames = [imageNames stringByAppendingFormat:@" %@",[[name lastPathComponent] stringByDeletingPathExtension]];

    }
NSLog(@"%@",imageNames); --> This returns one single name with all the image name, which i don't want, instead i want to store each extracted file name in array and wanted to compare the string entered by the user with this array. how to do it ?

1 个答案:

答案 0 :(得分:1)

You are not storing image name in array
 Try this way


    //get image name from the folder
    NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSString *directory = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"ProjectImages"];
    NSArray *files=[fileMgr contentsOfDirectoryAtPath:directory error:&error];
    //extract the extension
    NSMutableArray *array = [[NSMutableArray alloc]init];
    for (NSString *name in files) {
        NSString imageName = [[name lastPathComponent] stringByDeletingPathExtension];
if ([array indexOfObject:imageName inRange:NSMakeRang(0,[array count])]!=NSNotFound){ 
//duplicate
 }
else
 {
 [array addObject:imageName];
 }

}
    NSLog(@"%@",array);