linux 下的文件目录操作之遍历目录

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

      通过递归调用读取目录和文件信息去遍历整个目录:

      示例代码:

     #include <unistd.h>
    #include <stdio.h>
    #include <dirent.h>
    #include <string.h>
    #include <sys/stat.h>
    #include <stdlib.h> void printdir(char * dir, int depth)
    {
    DIR * dp = opendir(dir);
    if (NULL == dp)
    {
    fprintf(stderr, "cannot open directory: %s\n", dir);
    return;
    }
    chdir(dir);
    struct dirent * entry;
    struct stat statbuf;
    while ((entry = readdir(dp)) != NULL)
    {
    stat(entry->d_name, &statbuf);
    if (S_ISDIR(statbuf.st_mode))
    {
    if (strcmp(".", entry->d_name) == || strcmp("..", entry->d_name) == )
    continue;
    printf("%*s%s/\n", depth, "", entry->d_name);
    printdir(entry->d_name, depth + );
    }
    else
    printf("%*s%s\n", depth, "", entry->d_name);
    //printf("%*s",4,"*"); 该函数表示输出"___*",前面输出3个空格。
    //如果是printf("%*s",4,"**");则表示输出"__**",前面输出2个空格。
    }
    chdir("..");
    closedir(dp);
    } int main(int argc, char * argv[])
    {
    char * topdir, pwd[] = ".";
    if (argc < )
    topdir = pwd;
    else
    topdir = argv[];
    printf("Directory scan of %s\n", topdir);
    printdir(topdir, );
    printf("done.\n");
    exit();
    }

      运行结果:

      

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: k8s

    “linux 下的文件目录操作之遍历目录” 的相关文章

    CentOS 7升级gcc版本

    Centos 7默认gcc版本为4.8有时需要更高版本的这里以升级至9.3.1版本为例分别执行下面三条命令即可无需手动下载源码编译 1、安装 centos -release-scl sudo yum install centos-release-scl 列出一下...

    Ruby正则表达式怎么使用 - 开发技术

    这篇文章主要介绍了Ruby正则表达式怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Ruby正则表达式怎么使用文章都会有所收获,下面我们一起来看看吧。Ruby 正则表达式正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹...

    Java KindEditor粘贴图片自动上传到服务器功能怎么实现 - 开发技术

    这篇文章主要介绍了Java KindEditor粘贴图片自动上传到服务器功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java KindEditor粘贴图片自动上传到服务器功能怎么实现文章都会有所收获,下面...

    SEERC 2006 / UVa 1121 Subsequence (有和下界的最短连续子序列)

    1121 - SubsequenceTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=460&page=show_pr...

    jquery--ajax.GET 提交时候的乱码

    jQuery   ajax 提交的时候http://localhost:8089/v1/app_ref/list?enabled=0&srcName=%25E4%25B8%2587解决方案:js中var srcName=encodeURI(encodeURI($("#sr...

    vue组件的编写风格有哪些 - 编程语言

    这篇文章主要介绍了vue组件的编写风格有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue组件的编写风格有哪些文章都会有所收获,下面我们一起来看看吧。 随着vue3的逐渐稳定,以及周边生态的完善,现在vu...