加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 经验 > 正文

C++遍历文件夹下的所有文件

发布时间:2020-12-31 05:30:09 所属栏目:经验 来源:网络整理
导读:数据分多个文件存储,读取数据就需要对多个文件进行操作。首先就需要定位到文件的名字,之后再对文件进行相应的读写操作。多次涉及多文件的读写操作,现将这个实现总结一下,方便自己和他人使用。具体代码如下: #include "stdafx.h" #include stdio.h #in

数据分多个文件存储,读取数据就需要对多个文件进行操作。首先就需要定位到文件的名字,之后再对文件进行相应的读写操作。多次涉及多文件的读写操作,现将这个实现总结一下,方便自己和他人使用。具体代码如下:

#include "stdafx.h" 
#include <stdio.h> 
#include<iostream> 
#include<vector> 
#include <Windows.h> 
#include <fstream>  
#include <iterator> 
#include <string> 
using namespace std; 
#define MAX_PATH 1024 //最长路径长度 
/*---------------------------- 
 * 功能 : 递归遍历文件夹,找到其中包含的所有文件 
 *---------------------------- 
 * 函数 : find 
 * 访问 : public  
 * 
 * 参数 : lpPath [in]   需遍历的文件夹目录 
 * 参数 : fileList [in]  以文件名称的形式存储遍历后的文件 
 */ 
void find(char* lpPath,std::vector<const std::string> &fileList) 
{ 
  char szFind[MAX_PATH]; 
  WIN32_FIND_DATA FindFileData; 
  strcpy(szFind,lpPath); 
  strcat(szFind,"*.*"); 
  HANDLE hFind=::FindFirstFile(szFind,&FindFileData); 
  if(INVALID_HANDLE_VALUE == hFind)  return; 
  while(true) 
  { 
    if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
    { 
      if(FindFileData.cFileName[0]!='.') 
      { 
        char szFile[MAX_PATH]; 
        strcpy(szFile,lpPath); 
        strcat(szFile,""); 
        strcat(szFile,(char* )(FindFileData.cFileName)); 
        find(szFile,fileList); 
      } 
    } 
    else 
    { 
      //std::cout << FindFileData.cFileName << std::endl; 
      fileList.push_back(FindFileData.cFileName); 
    } 
    if(!FindNextFile(hFind,&FindFileData))  break; 
  } 
  FindClose(hFind); 
} 
int main() 
{ 
  std::vector<const std::string> fileList;//定义一个存放结果文件名称的链表 
  //遍历一次结果的所有文件,获取文件名列表 
  find("XXXX具体文件夹目录",fileList);//之后可对文件列表中的文件进行相应的操作 
  //输出文件夹下所有文件的名称 
  for(int i = 0; i < fileList.size(); i++) 
  { 
    cout << fileList[i] << endl; 
  } 
  cout << "文件数目:" << fileList.size() << endl; 
  return 0; 
} 

总结

以上所述是小编给大家介绍的C++遍历文件夹下所有文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读