c++ 17实现函数从输入的路径中查找图像,输出所有的图像路径,包含文件名
时间: 2024-03-23 08:38:59 浏览: 17
好的,我明白了。下面是一个简单的 C++ 17 函数实现,它可以从指定的目录中递归查找所有的图像文件,并输出它们的路径(包含文件名):
```c++
#include <iostream>
#include <filesystem>
#include <regex>
// 定义一个正则表达式,用于匹配图像文件名
const std::regex pattern(R"((.*?)\.(jpg|jpeg|png|bmp|gif)$)", std::regex::icase);
// 查找指定目录下的所有图像文件
void find_images(const std::filesystem::path& dir_path)
{
for (const auto& entry : std::filesystem::recursive_directory_iterator(dir_path))
{
if (std::filesystem::is_regular_file(entry) && std::regex_match(entry.path().filename().string(), pattern))
{
std::cout << entry.path() << std::endl;
}
}
}
int main()
{
// 输入需要查找的目录路径
std::filesystem::path dir_path;
std::cout << "请输入需要查找的目录路径:";
std::cin >> dir_path;
// 调用函数查找所有的图像文件
find_images(dir_path);
return 0;
}
```
在上面的代码中,我们使用了 C++ 17 中的 `std::filesystem` 库来遍历指定的目录和文件。我们还使用了一个正则表达式来匹配图像文件名,这个正则表达式匹配的是以 `.jpg`、`.jpeg`、`.png`、`.bmp` 或 `.gif` 结尾的文件名。最后,我们通过递归遍历目录来查找所有的图像文件,并将它们的路径输出到控制台。