[Linux]C语言遍历文件和目录
2013-02-04 09:17
363 查看
#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; }
相关文章推荐
- linux平台下基于C语言实现遍历文件目录
- [Linux]C语言遍历文件和目录
- linux下用c语言实现ls -l 对文件或者目录的属性遍历
- C语言遍历文件和目录——————【Badboy】
- Linux下遍历目录下的文件 2
- linux遍历目录下的文件
- Linux下文件及目录的一些操作(附递归遍历目录源码)
- Linux下递归遍历目录和文件
- linux遍历文件目录 链表形式
- 如何使用c语言递归地列出linux系统的所有目录和文件
- [Linux C]递归遍历指定目录下的子目录和文件
- linux下使用c语言删除指定目录下所有文件
- Linux文件目录树的遍历
- linux下遍历目录和文件,删除过期天数目录或文件shell脚本
- Linux目录遍历实现 -- 列出当前目录下所有文件
- C++实现Linux和Windows下遍历指定目录下的文件
- linux下遍历某个目录的文件,或者文件夹。遍历、递归
- 【Linux】遍历某一目录,判断文件与文件夹,main参数
- Linux下遍历目录下的文件
- C语言遍历windows目录文件 并对文件进行读写操作