获取一个文件夹下所有指定类型的文件名
#include <string>
#include <io.h>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
/************************************************************************/
/*获取文件夹下所有文件名
输入:
path : 文件夹路径
exd : 所要获取的文件名后缀,如jpg、png等;如果希望获取所有
文件名, exd = ".jt"
输出:
files : 获取的文件名列表 含有路径
*/
/************************************************************************/
void CONFIG_getFiles( string path, string exd, vector<string>& files )
{
//文件句柄
long hFile = 0;
//文件信息
struct _finddata_t fileinfo;
string pathName, exdName;
string p;
if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=-1)
{
do
{
//如果是文件夹中仍有文件夹,迭代之
//如果不是,加入列表
// 不推荐使用,硬要使用的话,需要修改else 里面的语句
if((fileinfo.attrib &_A_SUBDIR))
{
if(strcmp(fileinfo.name,".") != 0&&strcmp(fileinfo.name,"..") != 0)
CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
}
else
{
if (strstr(fileinfo.name,exd.c_str()))
{
files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
}
//如果使用
//files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
}
}while(_findnext(hFile, &fileinfo)== 0);
_findclose(hFile);
}
}
页:
[1]