#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <dirent.h>
int display_dir(const char *name)
{
DIR *pdir;
struct dirent *pdirent;
int file_count = 0,dir_count = 0;
if((pdir = opendir(name)) == NULL)
{
fprintf(stderr,"Fail to opendir %s : %s.\n",name,strerror(errno));
return -1;
}
while( pdirent = readdir(pdir) )
{
if(pdirent->d_name[0] == '.')
continue;
printf("%s\n",pdirent->d_name);
switch(pdirent->d_type)
{
case DT_REG:
file_count ++;
break;
case DT_DIR:
dir_count ++;
break;
}
}
printf("dir : %d file:%d.\n",dir_count,file_count);
return 0;
}
//./a.out .
int main(int argc, const char *argv[])
{
if(argc < 2)
{
fprintf(stderr,"Usage : %s argv[1].\n",argv[0]);
return -1;
}
display_dir(argv[1]);
return 0;
}