# include <stdio.h>
# include <string.h>
# include <stdlib.h>
# include <unistd.h>
# include <dirent.h>
# include <sys/types.h>
int re_readdir(char name[])
{
char str[1000] = {0};
//把目录路径存放在字符数组内
strcpy(str, name);
printf("%s\n", str);
//打开目录
DIR *dir = opendir(str);
if(NULL == dir)
{
perror("opendir");
return -1;
}
//如果打开成功,则循环读取目录
struct dirent *ent = readdir(dir);
while(NULL != ent)
{
strcpy(str,name);
printf("name = %s: type = %d\n", ent->d_name, ent->d_type);
if(4 == ent->d_type && strcmp(ent->d_name, ".") && strcmp(ent->d_name, ".."))
{
re_readdir(strcat(strcat(str,ent->d_name), "/"));
}
ent = readdir(dir);
}
closedir(dir);
return 0;
}
int main(void)
{
re_readdir("/home/tarena/uc/");
return 0;
}
# include <string.h>
# include <stdlib.h>
# include <unistd.h>
# include <dirent.h>
# include <sys/types.h>
int re_readdir(char name[])
{
char str[1000] = {0};
//把目录路径存放在字符数组内
strcpy(str, name);
printf("%s\n", str);
//打开目录
DIR *dir = opendir(str);
if(NULL == dir)
{
perror("opendir");
return -1;
}
//如果打开成功,则循环读取目录
struct dirent *ent = readdir(dir);
while(NULL != ent)
{
strcpy(str,name);
printf("name = %s: type = %d\n", ent->d_name, ent->d_type);
if(4 == ent->d_type && strcmp(ent->d_name, ".") && strcmp(ent->d_name, ".."))
{
re_readdir(strcat(strcat(str,ent->d_name), "/"));
}
ent = readdir(dir);
}
closedir(dir);
return 0;
}
int main(void)
{
re_readdir("/home/tarena/uc/");
return 0;
}