C++批量读取文件夹下的文件名

递归获取该路径下的所有文件

#include <io.h>  
#include <iostream>  
#include <vector>  
using namespace std;

void getFiles(string path, vector<string>& files){
    //文件句柄  
    intptr_t hFile = 0;
    //文件信息,声明一个存储文件信息的结构体  
    struct _finddata_t fileinfo;
    string p;  //字符串,存放路径
    if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1)//若查找成功,则进入
    {
        do
        {
            //如果是目录,迭代之(即文件夹内还有文件夹)  
            if ((fileinfo.attrib &  _A_SUBDIR))
            {
                //文件名不等于"."&&文件名不等于".."
                //.表示当前目录
                //..表示当前目录的父目录
                //判断时,两者都要忽略,不然就无限递归跳不出去了!
                if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                    getFiles(p.assign(path).append("\\").append(fileinfo.name), files);
            }
            //如果不是,加入列表  
            else
            {
                files.push_back(p.assign(path).append("\\").append(fileinfo.name));
            }
        } while (_findnext(hFile, &fileinfo) == 0);
        //_findclose函数结束查找
        _findclose(hFile);
    }
}
 

int main(){
    string FilePath = "E:\\Graduation project\\codev2\\Group Gset\\data";//自己设置目录  
    vector<string> FileName_List;

    //获取该路径下的所有文件  
    getFiles(FilePath, FileName_List);

    for (int i = 0; i < FileName_List.size(); i++) cout << FileName_List[i].c_str() << endl;
}
未经允许不得转载:紫竹林-程序员中文网 » C++批量读取文件夹下的文件名
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信

微信扫码
关注微信

技术交流群
管理员微信号
每天精选资源文章推送
管理员QQ
随时随地碎片化学习
管理员抖音号
发现有趣的