windows下C++实现遍历本地文件

1.假设本地 d:/ 下存放着0.txt,1.txt两个文件

2.开发工具VS,开发语言C++,怎么遍历得到两个文件呢?

废话不多,具体代码请看下面:

/**

* 入参:文件存放文件夹路径,例如D:\\

* 出参:每个文件绝对路径数组

**/

vector<CString> MyFile::listFiles(const char* dir)

{

  HANDLE h;   //文件句柄

  WIN32_FIND_DATA findData;   //查找到的文件信息结构

  char dirTmp[200];

  strcpy(dirTmp,dir);

  strcat(dirTmp,"*.*");   //使用通配符,和传入参数组成一个待遍历的路径

 

  vector<CString> fileList;   //此处用string就会使存入值变为乱码,所以用CString

   h = FindFirstFileA(dirTmp,&findData);  //开始遍历

   do{

    if(findData.dwFileAttributes&_A_SUBDIR || findData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY || strcmp(findData.cFileName,".") == 0 || strcmp(findData.cFileName,"..") == 0)

    {

      //log(INFO,"是目录,目录名:%s",findData.cFileName);

    }

    else

    {

      FILE *fp;

      strcpy(dirTmp,dir);

      strcat(dirTmp,findData.cFileName);  //将找到的文件名和传入路径组成一个绝对路径

      fileList.push_back(dirTmp);  //绝对路径存入vector(其实就是一个数组)

    }

   }while(FindNextFileA(h,&findData));

 

  FindClose(h);

  return fileList;

}

posted @ 2018-07-12 11:28  一只羊JAS  阅读(1114)  评论(0编辑  收藏  举报