현재디렉토리만 출력되는데 서브디렉토리 내용까지..

베리스타의 이미지

제가 아래 질문 한것 그냥 opendir 써서 디렉토리 내용만 가져왔는데, 이거를 하긴 했는데

그 서브 디렉토리내용까지 다 출력하고 싶으면 어떻게 해야 하나여?ㅡㅡ;

서브디렉토리까지 다 출력해야 할텐데.

지금은 현재디렉토리만 출력되네요>.<

서브 디렉토리까지 출력된는 법좀 알려주셈.

#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>

int main(int argc , char *argv[])
{
	DIR *dir;
	struct dirent *dent;

	dir = opendir(argv[1]);

	while(dent = readdir(dir))
	{
		printf("%s\n" , dent->d_name);
	}

	closedir(dir);
}
pynoos의 이미지

재미로.....

#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>

int main(int argc , char *argv[])
{
   DIR *dir;
   struct dirent *dent;

   dir = opendir(argv[1]);

   while(dent = readdir(dir))
   {
      char *a[2] = {0,"."};
      printf("%s\n" , dent->d_name);

      if( dent->d_name[0] != '.' && 0 == chdir(dent->d_name) )
      {
        main(2,a);
        chdir("..");
      }
   }

   closedir(dir);
}
cjh의 이미지

/usr/include/fts.h에 fts_open, fts_read 등의 함수가 정의되어 있을 겁니다. 지금 주변 리눅스 머신이 전부 매뉴얼 페이지가 이상한지 ;_; 안나오는데, 이들 함수군을 사용해서 디렉토리 구조를 돌아다닐 수 있습니다.

--
익스펙토 페트로눔