c++:根据文件名在目录下找文件,返回全路径
程序员文章站
2022-06-12 10:09:53
...
//头文件是从项目文件拷贝来的,看不需要的自己删除(多字节环境)
#include <vector>
#include <list>
#include <string>
#include <fstream>
#include <io.h>
#include <direct.h>
#include <string>
#include <iostream>
//根据文件名搜索目录下的文件
void GetFormatFiles(string path, string& name, string fotmat);
int main()
{
string name;
//第三个是文件名字,第二个是返回值。
GetFormatFiles("F:\\demo\\地铁燃弧\\测试数据\\GatherPath", name, strtemp);
}
//根据文件名在目录中寻找文件
//返回name全路径,format是文件名
//此函数可以根据怒需要自己修改
void GetFormatFiles(string path, string& name, string fotmat)
{
//文件句柄
long long hFile = 0;
//文件信息
struct _finddata_t fileinfo;
string p;
int fotmatlength = fotmat.length();
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)
{
GetFormatFiles(p.assign(path).append("\\").append(fileinfo.name), name, fotmat);
}
}
else
{
string strtemp = fileinfo.name;
//int maxchar = strtemp.length();
//if (maxchar > fotmatlength)
//{
//string rightstr = strtemp.substr(maxchar - fotmatlength, fotmatlength);
if (strtemp == fotmat)
{
name=(p.assign(path).append("\\").append(fileinfo.name));
return;
}
//}
}
} while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
上一篇: 爆怒,要么被气死,要么被噎死
下一篇: 小诗一组