• C语言遍历文件和文件夹——————【Badboy】


    [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. ");

      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. ");

      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 ", 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 ", 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 ", visit_dirs, visit_files);

      }else{

      printf("Usage: listdir

    ");

      return;

      }

      return 0;

      }

  • 相关阅读:
    FastDFS 集群 安装 配置
    springboot 集成fastDfs
    分布式文件系统FastDFS详解
    上传下载
    Spring Boot:上传文件大小超限制如何捕获 MaxUploadSizeExceededException 异常
    MySQL报错解决方案:2013-Lost connection to MySQL server
    JWT与Session比较和作用
    html跑马灯/走马灯效果
    后端排序,debug模式中map的顺序出错
    js调用后台接口进行下载
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7099919.html
Copyright © 2020-2023  润新知