[cpp]

  #include

  #include

  #include

  #include

  #include

  #include

  #include

  #define MAX_PATH_LENGTH 512

  #define MAX_FILE_EXTENSION 9

  unsigned long visit_dirs = 0;

  unsigned long visit_files = 0;

  void listdir(char *path){

  DIR *ptr_dir;

  struct dirent *dir_entry;

  int i = 0;

  char *child_path;

  char *file_path;

  child_path = (char*)malloc(sizeof(char)*MAX_PATH_LENGTH);

  if(child_path == NULL){

  printf("allocate memory for path failed.\n");

  return;

  }

  memset(child_path, 0, sizeof(char)*MAX_PATH_LENGTH);

  file_path = (char*)malloc(sizeof(char)*MAX_PATH_LENGTH);

  if(file_path == NULL){

  printf("allocate memory for file path failed.\n");

  free(child_path);

  child_path = NULL;

  return;

  }

  memset(file_path, 0, sizeof(char)*MAX_PATH_LENGTH);

  ptr_dir = opendir(path);

  while((dir_entry = readdir(ptr_dir)) != NULL){

  if(dir_entry->d_type & DT_DIR){

  if(strcmp(dir_entry->d_name,".") == 0 ||

  strcmp(dir_entry->d_name,"..") == 0){

  continue;

  }

  sprintf(child_path, "%s/%s", path, dir_entry->d_name);

  printf("[DIR]%s\n", child_path);

  visit_dirs++;

  listdir(child_path);

  }

  if(dir_entry->d_type & DT_REG){

  sprintf(file_path, "%s/%s", path, dir_entry->d_name);

  printf("[FILE]%s\n", file_path);

  visit_files++;

  }

  }

  free(child_path);

  child_path = NULL;

  free(file_path);

  file_path = NULL;

  }

  int main(int argc, char* argv[]){

  if(argc == 2){

  listdir(argv[1]);

  printf("Total DIR: %ld, Total FILE: %ld\n", visit_dirs, visit_files);

  }else{

  printf("Usage: listdir

\n");

  return;

  }

  return 0;

  }

C语言遍历文件和文件夹——————【Badboy】的更多相关文章

  1. 转: KindEditor 图片空间文件增加删除文件、文件夹功能(ASP语言环境)

    KindEditor 图片上传功能中集成的图片空间文件管理插件可以对已上传图片进行管理,十分便捷,只是没有图片删除功能,仔细研读xieliang分享的经验后,自己动手改造了一下,顺便分享给有同样需求的 ...

  2. C#递归遍历指定目录下文件和文件夹

    #region 使用递归查询某路径中的文件结构 public static void CheckFilePath() { ReadFilePath(); } public static void Re ...

  3. Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序

    编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来. #coding=utf-8 ''' Created on 2014年7月14日 @author: ...

  4. Python遍历文件个文件夹

    在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename ...

  5. C++遍历目录和文件夹

    我们需要一个结构体和几个函数.这些函数和结构体在<io.h>的头文件中,结构体为struct _finddata_t ,函数为_findfirst._findnext和_fineclose ...

  6. Linux 用C语言判断文件和文件夹

    Linux 用C语言判断文件和文件夹 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #inc ...

  7. Python小代码_15_遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间

    遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间 import osimport datetime def print_tree(dir_path): for ...

  8. C++遍历文件及文件夹代码

    可以遍历目录包含的文件及文件夹 #include <string> #include <vector> #include <io.h> using std::vec ...

  9. matlab遍历文件夹下所有图片和遍历所有子文件夹下图片

    做图像处理实验,经常需要遍历当前文件下所有图片.matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的.函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文 ...

  10. Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目 ...

随机推荐

  1. Oracle Instant Client 安装配置

    一.下载 下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 这是Ora ...

  2. C# 设置百分比保留2位数

    double a=50; double b=100; 没有小数部分Label1.Text = (a   /   (a+b)).ToString("0%")   两位小数Label2 ...

  3. BZOJ 4810 莫队+bitset

    思路: 看完这道题根本没有思路啊.... 然后我就膜拜了一波题解... 这神tm乱搞思路 维护两个bitset 第一个bitset代表当前区间哪些数出现过 第二个bitset是 maxp-p出现过 差 ...

  4. 管理mysql数据严格模式,和安全模式处理

    最近使用mysql数据库高一点的版本遇到了,插入和修改等语句失败情况.语句没有错误,但是workbench提示 Field 'id' doesn't have a default value.原因是 ...

  5. radis多个盘并发IO

    IO就是对磁盘的读/写. 一次IO,就是发出指令+执行命令. 磁盘IO的时间=寻道时间+数据传输时间 单盘不能并发IO. radis多个盘并发IO. 影响IO的最大因素是寻道时间. 影响电脑速度:cp ...

  6. PHP 框架Laravel Eloquent 实现身份验证

    PHP自从5.3后似乎又热度又回升, 最近了解了一下PHP框架之一Laravel, 最近最新的版本已经是4.3  基本的结构这里不讲, 要了解可以在这里看文档 http://v4.golaravel. ...

  7. 前端-Vue结构思维导图笔记

    看不清的朋友右键保存或者新窗口打开哦!喜欢我可以关注我,还有更多前端思维导图笔记有vue结构分析,JS基础,JQ,JS高级,Angular,git等等

  8. js-事件处理(重点)

    1:各种常用事件: 2:简单用法: <body onLoad="javascript:alert('hello world');" onUnload="javasc ...

  9. java如何设置文件的权限

    import java.io.File; 2.import java.io.IOException; 3./× 4.×只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限 ...

  10. Matlab数组创建

    只用C语言,不用Matlab这种魔咒还是要打破的.Matlab是科学计算的常用工具,既然以前没用过,现在开始学吧...... 1.   向量的创建 1)直接输入: 行向量:a=[1,2,3,4,5] ...