2015-02-10 54 views
-1

我有几个图像在“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

你不存储任何数组中的任何。您正在构建一个空格分隔的文件名字符串。 – rmaddy 2015-02-10 20:01:51

回答

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); 
+0

谢谢shashi3456643!我用if([array containsObject:user_entered_string])来比较用户输入的字符串是否存在于可变阵列中,但它没有给出任何结果。下面是代码 (NSString * name in files){ NSString * imageName = [[last lastPathComponent] stringByDeletingPathExtension]; [imgaftext addObject:imageName]; if([imgaftext containsObject:message]){//消息是用户输入的字符串 NSLog(@“Yes”); } } – user3310076 2015-02-11 10:51:57

+0

你说你不要添加重复,如果已经存在,那么不要添加你可以使用inRange。 – Shashi3456643 2015-02-11 12:12:21

+0

if([mutableArray indexOfObject:object inRange:NSMakeRang(0,[mutableArray count])]!= NSNotFound){// duplicate} – Shashi3456643 2015-02-11 12:16:33