c++:根据文件名在目录下找文件,返回全路径

//头文件是从项目文件拷贝来的,看不需要的自己删除(多字节环境)
#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);
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值