Получить файлы внутри папки в каталоге документов на iPhone

Я новичок в айфоне,

Я сделал приложение, в котором я загружаю книгу и сохраняю ее в папке с именем book1Folder, которая находится внутри Document directory.

теперь мне нужно имя всех книг в моем массиве, внутри book1Folder есть 2 книги, но когда я пишу этот код, он показывает, что количество массивов равно 3.

Вот мой фрагмент кода,

-(void)viewWillAppear:(BOOL)animated{
    NSString *files;
    NSString *Dir=[self applicationDocumentsDirectory];
    Dir=[Dir stringByAppendingPathComponent:@"book1Folder"];

    NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:Dir];

    Downloadedepubs = [[NSMutableArray alloc]init];
    while(files = [direnum nextObject])
    {
        if([[files pathExtension] isEqualToString:@"epub"])
            NSLog(@"files=%@",files);
            [Downloadedepubs addObject:files];
    }
}

В моем журнале отображается только имя 2 книг, но когда я перебираю массив, он содержит 3 объекта.

[Downloadedepubs ObjectAtIndex:0]=.DS_Store;
[Downloadedepubs ObjectAtIndex:1]=abcd;
[Downloadedepubs ObjectAtIndex:2]=pqrs;

Что это .DS_Store почему это происходит?

Любая помощь будет оценена по достоинству.


person Krunal    schedule 25.07.2012    source источник
comment
Файл .DS_Store создается ОС. Вы можете игнорировать это.   -  person Samet DEDE    schedule 25.07.2012
comment
Почему он добавляется в мой массив, даже если я написал if([[files pathExtension] isEqualToString:@"epub"]), а затем только добавлю книгу в мой массив.   -  person Krunal    schedule 25.07.2012


Ответы (3)


Получите свой блок if в фигурных скобках. Это влияет только на первую строку после if.

Как показано ниже;

if([[files pathExtension] isEqualToString:@"epub"]) {
            NSLog(@"files=%@",files);
            [Downloadedepubs addObject:files];
}
person Samet DEDE    schedule 25.07.2012

.DS_Store - это скрытый файл в Mac для хранения сообщений о ваших файлах в папке. Вы можете удалить его.

person cloosen    schedule 25.07.2012

Попробуй это:

  NSDirectoryEnumerator*    e = [[NSFileManager defaultManager] enumeratorAtPath:yourPathhere];

// Ignore any files except XYZ.epub
for (NSString*  file in e)
{
    if (NSOrderedSame == [[file pathExtension] caseInsensitiveCompare:@"epub"])
    {
           // Do something with file.epub
               [Downloadedepubs addObject:files];

    }
    else if ([[[e fileAttributes] fileType] isEqualToString:NSFileTypeDirectory])
    {
        // Ignore any subdirectories
        [e skipDescendents];
    }
}
person Paresh Navadiya    schedule 25.07.2012