一、读取目录内容

#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/types.h>
int main(int argc,char *argv[])
{if( argc < 2 ){printf( "./a.out filename" );return -1;}DIR *pDir = opendir(argv[1]);if( pDir == NULL ){perror( "opendir err" );return -1;}//循环读取
struct dirent *pDent = NULL;while( ( pDent = readdir(pDir) ) ){//进入循环,意味着 pDen 非空,代表读到目录的内容printf("%s -%d\n", pDent->d_name, pDent->d_type);}//关闭目录closedir(pDir);return 0;
}

二、递归统计指定目录下普通文件个数

//遍历目录,统计普通文件个数
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/types.h>
#include <string.h>
int count = 0; // 记录文件个数 全局变量
int filecount(const char *path) // 自定义函数 // 参数:目录名
{DIR *pDir = opendir(path); // 打开目录,获得目录信息if(pDir == NULL){perror("opendir err ");return -1;}// 循环读取struct dirent *pDent = NULL; // 传出参数while( ( pDent = readdir(pDir) ) ){// 进入循环,意味着 pDen 非空,代表读到目录的内容if(pDent->d_type == DT_REG){count++; // 如果是普通文件,计数加1}else if(pDent->d_type == DT_DIR){// 如果是目录文件if(strcmp(pDent->d_name,".") == 0 || strcmp(pDent->d_name,"..") == 0){continue; // 过滤 . 和 ..}// 能否传递pent->d_name? 不可以!d_name只是文件名,不带路径char strNewPath[1024] = {0};sprintf(strNewPath,"%s/%s", path, pDent->d_name); // 拼接子目录相对路径filecount(strNewPath); // 递归调用,继续计数}}closedir(pDir); // 关闭目录return 0;
}
int main(int argc,char *argv[])
{if(argc < 2){printf("./a.out filename\n");return -1;}filecount(argv[1]); // 自定义函数:传入目录名(路径),普通文件个数赋值给全局变量countprintf("file count is %d\n", count);return 0;
}

Linux学习:读取目录内容 (目录名和类型)和递归统计指定目录下普通文件个数练习相关推荐

  1. PHP 读取数据库内容并以二维数组按指定列输出实例

    最新PHP 读取数据库内容并以二维数组按指定列输出实例 以下是三零网为大家整理的最新PHP 读取数据库内容并以二维数组按指定列输出实例的文章,希望大家能够喜欢! <?php $host = &q ...

  2. Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数.目录个数,本文使用ls命令配合管理.grep命令实现统计需求,需要的朋友可以参考下 1) 统计当前文件夹下文件的个数 复制代码 代码如下: l ...

  3. [Linux C]递归遍历指定目录下的子目录和文件

    /* 功能:演示了在Linux下利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件 */ #include <stdio.h> #include <dirent.h> ...

  4. shell统计指定目录下所有文件类型及数量

    #!/bin/bash #Synopsis:用于统计脚本当前所在目录或者用户指定目录下的所有文件类型及数量 #若直接运行脚本而不接任何命令行参数,则默认会统计脚本所在目录下的文件 #Date:2016 ...

  5. 【转】【Linux】Linux下统计当前文件夹下的文件个数、目录个数

    [转][Linux]Linux下统计当前文件夹下的文件个数.目录个数 统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的 ...

  6. [Linux C]递归遍历指定目录,以目录树形式展示

    /* 功能:演示了利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件,并以目录树形式展示! 其中编译命令为:gcc -o travel travel.c -std=c99 */ #includ ...

  7. findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...

    findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机? Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  8. [Windowns C]递归遍历指定目录下的子目录和文件

    /* 功能:演示了利用C语言递归遍历指定目录下的子目录和文件! 说明:经修改也可以搜索文件名符合特定格式的文件,如修改"\\*.*"为"\\*.log" */ ...

  9. shell统计当前文件夹下的文件个数、目录个数

    shell统计当前文件夹下的文件个数.目录个数 ls -l |grep "^-"|wc -l //统计当前文件夹下文件的个数 ls -l |grep "^d"| ...

最新文章

  1. 【转】 一些NET的实用类,不错
  2. dual orcal 虚拟表
  3. 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
  4. java 获取麦克_Java Sound API-捕获麦克风
  5. hive -e和hive -f的区别(转)
  6. Linux图片马PHP,php 根据请求生成缩略图片保存到Linux图片服务器的代码
  7. 西门子智能门锁设计_如何过度设计门锁
  8. Manacher算法(马拉车算法)
  9. 怎样看开源代码版权_版权声明在开源代码中泛滥成灾
  10. 微信开发(微信扫一扫)商品创建
  11. 读《我怎样设计飞机》
  12. OpenFOAM中重力的植入方式
  13. 电脑重装系统需要多少钱?
  14. krohne流量计接线图_KROHNE电磁流量计OPTILUX4300
  15. 到底什么是国土空间规划?
  16. 多人同步在线编辑文档(onlyoffice)服务器部署-测试
  17. 程序员中的“芳心纵火犯”, 这就是面向对象编程吗?
  18. 数据处理笔记11 类别不平衡处理-抽样方法
  19. window电脑C盘占用过大问题的几种解决方法
  20. Bugtags创业一年总结

热门文章

  1. 主流mes厂商_MES市场的前景
  2. 浙江大学杭州国际科创中心招聘优秀青年人才(机器学习及大数据)
  3. 小马智行Pony.ai 2020校招正式开启
  4. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理
  5. python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...
  6. JVM【带着问题去学习 02】数据结构栈+本地方法栈+虚拟机栈+JVM栈运行原理
  7. 远程连接——Windows远程连接CentOS远程桌面
  8. CG CTF WEB MYSQL
  9. ICPC-无限路之城
  10. 继承 WebMvcConfigurationSupport类后无法访问Swagger页面问题