zoukankan      html  css  js  c++  java
  • 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;

      }

  • 相关阅读:
    POJ3186(KB12-O DP)
    POJ1661(KB12-M DP)
    POJ2533(KB12-N LIS)
    POJ1458(KB12-L LCS)
    HDU1160(KB12-J DP)
    HDU1260(KB12-H DP)
    HDU1114(KB12-F DP)
    HDU1024(DP)
    HDU1074(KB12-D 状态压缩dp)
    天梯赛2016-L2
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7099919.html
Copyright © 2011-2022 走看看