C++获取某个文件夹下的所有文件

获取某个文件夹下的所有文件,返回各文件的路径加文件名

path为某文件夹的路径:eg. char * filePath = "C:\\Users\\WUQP\\Desktop\\test_devided"; 

 1 void getFiles( string path, vector<string>& files, vector<string> &ownname)  
 2 {  
 3     /*files存储文件的路径及名称(eg.   C:\Users\WUQP\Desktop\test_devided\data1.txt)
 4      ownname只存储文件的名称(eg.     data1.txt)*/
 5     
 6     //文件句柄  
 7     long   hFile   =   0;  
 8     //文件信息  
 9     struct _finddata_t fileinfo;  
10     string p;  
11     if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)  
12     {  
13         do  
14         {  
15             //如果是目录,迭代之  
16             //如果不是,加入列表  
17             if((fileinfo.attrib &  _A_SUBDIR))  
18             {  /*
19                 if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)  
20                     getFiles( p.assign(path).append("\\").append(fileinfo.name), files, ownname ); */ 
21             }  
22             else  
23             {  
24                 files.push_back(p.assign(path).append("\\").append(fileinfo.name) );  
25                 ownname.push_back(fileinfo.name);
26             }  
27         }while(_findnext(hFile, &fileinfo)  == 0);  
28         _findclose(hFile);  
29     }  
30 } 

 

posted on 2017-05-13 16:28  HelloShijam  阅读(17794)  评论(1编辑  收藏  举报

导航