C++bosst遍历文件目录,根据文件名返回文件路径。
2024-08-28 10:17:26
- VS2071安装Boost库
- 安装boost库
- 接着安装boost_system-vc140(可根据开发需求,更改版本)
- 废话不多说,上代码
// 测试程序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 函数功能:匹配某个目录下的文件,返回文件路径 #include "pch.h"
#include <string>
#include <iostream>
#include <boost/filesystem.hpp> using namespace std; string strHeadPath = ""; //匹配文件,返回文件所在路径
bool ReadFilePath(const string &strFilePath, string strCmpFile)
{ std::string::size_type nPos = strFilePath.rfind("\\");
if (std::string::npos == nPos)
{
return false;
}
string strFileName = strFilePath.substr(nPos+1, strFilePath.size()); if (strFileName == strCmpFile)
{
strHeadPath = strFilePath;//strHeadPath定义成全局变量
return true;
}
return false;
} //遍历文件,寻找文件名对应路径
//参数1:文件根路径 参数2:要查找的文件名
void GetFileNameFromDir(string rootPath, string strCmpFile)
{
boost::filesystem::path dir(rootPath);
if (boost::filesystem::exists(dir)) // 判断路径是否存在
{
boost::filesystem::directory_iterator itEnd;
boost::filesystem::directory_iterator itDir(dir);
std::string strNewRoot("");
for (; itDir != itEnd; itDir++) // 遍历路径下所有文件
{
strNewRoot = itDir->path().string();
if (boost::filesystem::is_directory(strNewRoot.c_str())) // 判断文件是否是文件夹
{ GetFileNameFromDir(strNewRoot, strCmpFile);
}
else {
ReadFilePath(strNewRoot, strCmpFile);
}
}
}
} int main()
{
GetFileNameFromDir("D:\\test", "haha.txt");
cout << strHeadPath.c_str() << endl;
return 0;
}
- 测试结果
- 总结:为了凑够150字的随笔发个小总结,其实没毛总结的,此函数可以封装成dll,实用的小函数,c++本作者也是边学边写,平时比较忙后续偶尔会发一些数据安全相关的技术文章,凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字凑字。
最新文章
- 设计向 20款优秀免费的Icons图标合集 (转)
- c++队列基本功能
- WebServers发布提示oracle客户端模式不一致
- 【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用
- fis3运行项目的前准备
- css selector
- 记录一个 关于 python 普通方法,静态方法和类方法 的介绍。@classmethod @staticmethod
- C#中窗体的互相访问
- wpa_cli调试工具的使用
- 设计模式-结合Android代码
- 杂乱无章之javascript(二)
- C#调用ActiveX控件
- jQuery 遍历后代
- 轮播图插件myFocus使用
- git pull以及git pull --rebase
- JVM调优之JMeter使用(三)
- Oracle不能连接故障排除[TNS-12541: TNS: 无监听程序]
- openmp查看最大线程数量
- servlet转发重定向
- chrome&#39;s developer console
热门文章
- SpringBoot的注解注入功能移植到.Net平台(开源)
- 转:int整数除以int整数一定得到的是int整数(易忽视)
- 使用docker安装mysql并连接
- 蓝桥杯 algo122 未名湖的烦恼 简单题
- Excel自定义格式参数
- 看完您如果还不明白 Kerberos 原理,算我输!
- You can&#39;t specify target table &#39;sys_user_function&#39; for update in FROM clause
- php基础——语法、变量
- Scala 学习笔记之implicit
- Tomcat源码分析一:编译Tomcat源码