欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ 获取文件夹下的所有文件名称

程序员文章站 2022-04-18 19:23:48
...

获取文件夹下所有的文件名是常用的功能,今天再一次有这样的需求,特此做个记录

原文:https://www.cnblogs.com/fnlingnzb-learner/p/6424563.html
原文:http://blog.csdn.NET/cxf7394373/article/details/7195661
原文:http://qiaoxinwang.blog.163.com/blog/static/86096452010612139172/

头文件:#include<io.h>
 char * filePath = "D:\\sample"; 
vector<string> files;  
  
////获取该路径下的所有文件  
getFiles(filePath, files );  
  
char str[30];  
int size = files.size();  
for (int i = 0;i < size;i++)  
{  
    cout<<files[i].c_str()<<endl;  
}

void getFiles( string path, vector<string>& files )  
{  
    //文件句柄  
    long   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(hFile);  
    }  
}