C++ List Dirs

List Dirs

#include <iostream>
#include <string>
#include <io.h>

using namespace std;

#define DIR "c:"

int rec_dir_list(string path) {
  static int count = 0;
  struct _finddata_t  c_file;
  long fh;
  

  string t_path = path;
  t_path += "\\*.*";

  if((fh=_findfirst(t_path.c_str(),&c_file)) != -1)
    while(_findnext(fh, &c_file) == 0)
      // ignore '.' and '..'
      if(strncmp(c_file.name, ".", 1) != 0
         && strncmp(c_file.name, "..", 2) != 0) {
        if((c_file.attrib & _A_SUBDIR) == _A_SUBDIR) {
          rec_dir_list(path + "\\" + c_file.name);
          cout << "DIR: " << path << "\\" << c_file.name << endl;
          count++;
        }
      }

  return count;
}

int main() {

  cout << "Total " << rec_dir_list(DIR)
       << " sub directories\n";

  return 0;
}