2014-02-11 4 views
1

데스크탑과 같이 디렉토리 내부의 아카이브 총량을 어떻게 알 수 있습니까? 디렉토리의 루트 내부뿐만 아니라 하위 폴더 내부에도 무엇이 있는지 알고 싶습니다.Objective-C의 디렉토리 파일 수

그냥 내가 다음을 수행 할 수 있습니다 바탕 화면의 루트에 아카이브를 활용하려면 다음

NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil]; 
NSUInteger numberOfFileInFolder = [directoryContent count]; 

그러나 나는 또한 그 하위 폴더의 수를 얻을 필요가있다.

누군가 나를 도울 수 있습니까?

편집 : 마지막으로 나는 이런 식으로 코딩 한 :

-(int) numberOfDocumentsInPath: (NSString *) path{ 
    NSFileManager *manager = [[NSFileManager alloc] init]; 

    NSDirectoryEnumerator* totalSubpaths = [manager enumeratorAtPath: path]; 

    NSLog(@"Path %@ has %d documents", path, (int)[[totalSubpaths allObjects] count]); 

    return (int)[[totalSubpaths allObjects] count]; 
} 
+0

이 당신을 위해 유용 할 수 있습니다 : https://github.com/ fabiocaccamo/FCFileManager – hashier

답변

2

스트레이트 the docs에서 :

당신이 enumeratorAtURL, 하위 디렉토리로 재귀 사용해야하는 경우 : includingPropertiesForKeys : 옵션 : ErrorHandler를 : 으로 "디렉토리 열거 자 사용"을 참조하십시오. 여기

확인 : Using a Directory Enumerator

3

이 시도 :

NSDirectoryEnumerator *subs = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:FolderPath error:nil]; 
1

스위프트 버전 :

var subs = NSFileManager.defaultManager().subpathsOfDirectoryAtPath(path, error: nil) as! [String] 
var filecount = subs.count 
println(filecount) 

for sub in subs { 
    //Do stuff with files 
} 
관련 문제