2014-11-02 4 views
0

사용자로부터 루트 디렉토리와 최소 파일 크기를 취하여 모든 하위 디렉토리에 입력 한 크기보다 큰 모든 파일을 계산하는 프로그램을 작성해야합니다.재귀 적 계산

내 재귀는 현재 작업 디렉토리에 있고 하위 디렉토리에있는 파일 수만 계산합니다. 이 문제를 해결하는 방법에 대한 단서가 있습니까? 그것은 올바르게 작업 디렉토리에있는 파일의 수를 세고 있습니다.

+1

hilarity의 경우, contabiling 디렉토리에 대한 심볼릭 링크를 (하위) 디렉토리 중 하나에 넣습니다. – Deduplicator

답변

0

함수를 재귀 적으로 호출 할 때 경로를 올바르게 지정해야합니다. dentry->d_name은 파일 이름 만 나타냅니다. 그것이 속한 디렉토리 이름을 포함하지 않습니다.

그렇지 않으면 존재하지 않는 디렉토리로 재귀하려고 시도합니다. (또는 부모 디렉토리와 이름이 같은 디렉토리가있는 경우 동일한 디렉토리로 무한대로 재귀하려고 시도합니다.

char path[PATH_MAX]; 

.... 

snprintf(path, sizeof path, "%s/%s", fileName, dentry->d_name); 
countFiles(path, count, size);