Получить количество файлов в каталоге - PullRequest
8 голосов
/ 17 февраля 2010

Как я могу сосчитать файлы в каталоге? Я не смог найти ничего подходящего в справочнике классов NSFileManager.

Ответы [ 3 ]

14 голосов
/ 17 февраля 2010

contentsOfDirectoryAtPath:error: возвращает NSArray. Просто отправьте count в массив.

3 голосов
/ 29 октября 2013

contentsOfDirectoryAtPath:error: возвращает NSArray из всего в каталоге (файлы + папки).

Чтобы получить только количество файлов, вы можете выполнить фильтрацию следующим образом:

NSMutableArray *files = [[NSMutableArray alloc] init];
NSArray *itemsInFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:folderpath error:NULL];

NSString *itemPath;
BOOL isDirectory;
for (NSString *item in itemsInFolder){
    itemPath = [NSString stringWithFormat:@"%@/%@", folderpath, item];
    [[NSFileManager defaultManager] fileExistsAtPath:item isDirectory:&isDirectory];
    if (!isDirectory) {
        [files addObject:item];
    }
}

return [files count];
0 голосов
/ 12 февраля 2014

subpathsOfDirectoryAtPath: ошибка: возвращает массив со всеми путями целевого каталога, включая подкаталог.

Но, как говорится в документе, «вы, возможно, не захотите использовать его в коде, критичном к производительности».

...