C++遍历

来源:互联网 发布:python to datetime 编辑:程序博客网 时间:2024/06/01 10:24
#include <io.h>  #include <string.h>  #include<iostream>using namespace std;const int MAXLEN = 1024;                      //定义最大目录长度  unsigned long FILECOUNT = 0;                  //记录文件数量 void ListDir(const char* pchData)  {      _finddata_t   fdata;                      //定义文件查找结构对象      long   done;         char tempdir[MAXLEN]={0};                 //定义一个临时字符数组,存储目录      strcat(tempdir, pchData);                 //连接字符串      strcat(tempdir, "c:\*.txt");                 //连接字符串      done   =  _findfirst(tempdir, &fdata);    //开始查找文件      if (done != -1)                       //是否查找成功      {          int ret = 0;          while  (ret != -1)                //定义一个循环          {              if (fdata.attrib != _A_SUBDIR)    //判断文件属性              {                  if (strcmp(fdata.name,"...")  != 0 &&                        strcmp(fdata.name,"..") != 0 &&                        strcmp(fdata.name,".") != 0)            //过滤                  {                      char dir[MAXLEN]={0};            //定义字符数组                      strcat(dir,pchData);                  //连接字符串                      strcat(dir,"c:\*.txt");                     //连接字符串                        strcat(dir,fdata.name);             //连接字符串                      cout << dir << endl;                  //输出查找的文件                      FILECOUNT++;                      //累加文件                  }              }              ret = _findnext(done, &fdata);                    //查找下一个文件              if (fdata.attrib == _A_SUBDIR && ret  != -1)      //判断文件属性,如果是目录,则递归调用              {                  if (strcmp(fdata.name,"...")  != 0 &&                        strcmp(fdata.name,"..") != 0 &&                        strcmp(fdata.name,".") != 0)            //过滤                  {                      char pdir[MAXLEN]=  {0};            //定义字符数组                        strcat(pdir,pchData);               //连接字符串                      strcat(pdir , "c:\*.txt");                      //连接字符串                        strcat(pdir,fdata.name);            //连接字符串                      ListDir(pdir);                    //递归调用                  }              }          }      }  } int main(void)     {         while (true)         //设计一个循环      {          FILECOUNT = 0;          char  szFileDir[128] = {0}; //定义一个字符数组,存储目录          cin >> szFileDir;          if (strcmp(szFileDir, "e") == 0)  //退出系统          {              break;          }          ListDir(szFileDir);  //调用ListDir函数遍历目录          cout << "共计" << FILECOUNT << "个文件" << endl;           //统计文件数量      }      return 0;   } 

0 0