C++bosst遍历文件目录,根据文件名返回文件路径
程序员文章站
2024-03-14 11:06:28
...
C++bosst遍历文件目录,根据文件名返回文件路径
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;
}`在这里插入代码片`
上一篇: LeNet-5论文笔记
下一篇: C++ 原子类型
推荐阅读
-
C++bosst遍历文件目录,根据文件名返回文件路径
-
Asp.net 获取指定目录下的后缀名为".doc" 的所有文件名和文件路径
-
Asp.net 获取指定目录下的后缀名为".doc" 的所有文件名和文件路径
-
编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。
-
java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
-
java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
-
PHP的函数没法获得中文路径中的目录部分及文件名部分
-
php glob实现目录文件遍历与寻找与模式匹配的文件路径
-
javascript - php 有什么函数是可以根据文件名称,来获取这个文件的全路径的吗?或者js 怎么获取文件的全路径?
-
python根据给定文件返回文件名和扩展名的方法