Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75377
  • 博文数量: 27
  • 博客积分: 2120
  • 博客等级: 大尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-25 20:51
文章分类
文章存档

2011年(1)

2010年(10)

2009年(16)

我的朋友

分类: C/C++

2009-11-29 13:43:32

void test_lsls(char *dirname, int level)
{
    DIR *dp;
    struct dirent *dirp;
    char* dirnametmp = (char *)malloc(256);
    //char dirnametmp[128] = {0};

    char print_space[128] = {0};
    int ltmp = level;

    dp = opendir(dirname);
    if(dp == NULL)
    {
        printf("can't find %s\n", dirname);
        return;
    }

    if(dirname[strlen(dirname) - 1] == '/')
    {
        sprintf(dirnametmp, "%s", dirname);
    }
    else
    {
        sprintf(dirnametmp, "%s/", dirname);
    }

    //printf("%s\n", dirnametmp);


    while(ltmp)
    {
        strcat(print_space, "| ");
        ltmp--;
    };

    while(dirp = readdir(dp))
    {
        printf("%s%s\n", print_space, dirp->d_name);


        /*不显示.和..目录*/

        if(dirp->d_type == 4 && strcmp(dirp->d_name, ".") && strcmp(dirp->d_name, ".."))
        {
            char tmp[256] = {0};
            strcat(tmp, dirnametmp);
            strcat(tmp, dirp->d_name);
            test_lsls(tmp, level+1);
        }
    }

    closedir(dp);
    free(dirnametmp);
}


阅读(937) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-01-04 00:55:15

有道理

chinaunix网友2009-11-29 15:25:40

256、128太多数字,建议用PATH_MAX、NAME_MAX替代