c로 파일인지 폴더 구별할수있게하려면..
글쓴이: pooh311 / 작성시간: 월, 2005/06/27 - 8:43오후
while ((pent=readdir(pdir)) != '\0'){ stat(pent->d_name, &st); if (S_ISDIR(st.st_mode)) { pent->d_name[strlen(pent->d_name)+1]='\0'; pent->d_name[strlen(pent->d_name)]='/'; } printf("%s\n", pent->d_name); }
이렇게 하면 파일은 그대로 출력되고 폴더는 폴더명 뒤에 '/' 붙어서 나오지 않나요??
근데 어떤 파일에는 뒤에 '/'붙어서 나오네요..
제가 실수한게 있나요??
Forums:
struct dirent::d_name은 사용자가 임의로 수정할 수 있는
struct dirent::d_name은 사용자가 임의로 수정할 수 있는 member가 아닙니다. 따라서 추가로 "/"를 넣을 수 없습니다. 또한 readdir(3)이 리턴하는 것은 NULL이지 '\0'이 아닙니다. 단순히 디렉토리 이름 뒤에 "/"를 붙여서 출력하는 것이 목적이라면 다음과 같이 하면 됩니다:
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기