[Linux]C语言遍历文件和目录
来源:互联网 发布:宁波php招聘 编辑:程序博客网 时间:2024/05/01 04:19
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <dirent.h> #include <unistd.h> #include <sys/stat.h> #include <sys/types.h> #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 <dir>\n"); return; } return 0; }
0 0
- [Linux]C语言遍历文件和目录
- [Linux]C语言遍历文件和目录
- C语言遍历文件和目录
- C语言遍历文件和目录
- linux遍历目录C语言
- linux平台下基于C语言实现遍历文件目录
- linux用c语言来遍历目录
- C语言遍历目录
- C语言遍历目录
- C语言遍历目录
- C/C++遍历文件和目录
- C/C++遍历文件和目录
- Linux下 C语言实现遍历指定目录下指定格式的文件
- linux下用c语言实现ls -l 对文件或者目录的属性遍历
- C语言遍历文件和目录——————【Badboy】
- linux C语言遍历文件夹所有文件
- DOS用C语言下对文件目录的遍历
- c 语言遍历某目录下所有文件代码
- 第二周----玩日期
- 输入学生成绩,输出学生成绩
- 通俗例子详解Thread.sleep()
- 数字读取
- Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
- [Linux]C语言遍历文件和目录
- MachineLearning(Andrew)Week1
- codeforce 400 C
- 二周 项目3 文件+结构体实现使用功能
- 静态数据成员
- linux下clang+llvm3.3安装(ubuntu)
- 对话框包含视类头文件出错
- java中多线程的实现方式有两种
- Logistic Function == Sigmoid Function