2015-02-10 6 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

ответ

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]) для сравнения, если введенная пользователем строка находится в mutablearray, но она не дала результата. ниже приведен код для (имя NSString * в файлах) { NSString * imageName = [[name lastPathComponent] stringByDeletingPathExtension]; [imgaftext addObject: imageName]; if ([imgaftext containsObject: message]) {// message - строка, введенная пользователем NSLog (@ «Да»); } } – user3310076

+0

Вы говорите, что не добавляйте дубликат, если он уже существует, тогда не добавляйте, вы можете использовать inRange. – Shashi3456643

+0

if ([mutableArray indexOfObject: object inRange: NSMakeRang (0, [mutableArray count])]! = NSNotFound) {// duplicate} – Shashi3456643

Смежные вопросы