2011-07-21 3 views

ответ

14
NSFileManager *filemgr = [NSFileManager defaultManager]; 

NSArray *filelist= [filemgr directoryContentsAtPath: yourPath]; 

int count = [filelist count]; 

NSLog ("%i",count); 
+1

'directoryContentsAtPath:' устарел. См. Ответ @ bitmapdata.com –

0

Использование NSFileManager.

+0

Он говорит об iOS –

+1

@Matt: iOS поддерживает NSFileManager. –

+2

@Seva Вы правы, однако jtbandes связаны с документацией Mac –

0
NSArray* files = [[NSFileManager defaultManager] directoryContentsAtPath:DIRECTORY]; 
NSLog(@"%d",[files count]); 
6

- (NSArray *)directoryContentsAtPath:(NSString *)path устарела. Вместо этого используйте - (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error. Это будет означать, что код Matt S от выше станет:

NSFileManager * filemgr = [NSFileManager defaultManager]; 
NSArray * filelist = [filemgr directoryContentsAtPath:yourPath error:nil]; 
int count = [filelist count]; 
NSLog("%d", count); 
8

directoryContentsAtPath: устарела.

Если вы хотите получить количество файлов в папке «Документы».

попробуйте это.

NSFileManager *fm = [NSFileManager defaultManager]; 
NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSArray *filelist= [fm contentsOfDirectoryAtPath:[docPaths objectAtIndex:0] error:nil]; 
int filesCount = [filelist count]; 
NSLog(@"filesCount:%d", filesCount); 
+0

Является ли это рекурсивным подсчетом? – aneuryzm

+0

@Patrick no это не рекурсивный подсчет. – atuljangra

+1

Спасибо! Быстрый вопрос, есть ли встроенный способ фильтрации по типу файла, или мне нужно прокручивать и проверять имена? –

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