c++ 获取当前文件夹下某个匹配名称的文件路径
时间: 2023-10-04 14:04:21 浏览: 101
你可以使用C++的标准库中的`<filesystem>`头文件来获取当前文件夹下某个匹配名称的文件路径。具体实现方法如下:
```c++
#include <filesystem>
#include <iostream>
int main()
{
std::filesystem::path path = "./"; // 指定当前目录
std::string filename = "example.txt"; // 要匹配的文件名称
for (const auto& file : std::filesystem::directory_iterator(path))
{
if (file.is_regular_file() && file.path().filename().string() == filename)
{
std::cout << "File found: " << file.path() << std::endl;
}
}
return 0;
}
```
在上述代码中,我们使用了`std::filesystem::directory_iterator`来遍历当前目录下的所有文件,然后判断是否是普通文件,并且文件名是否与我们要匹配的文件名相同。如果是,则输出该文件的路径。
相关问题
C++ 获取指定文件夹下指定后缀名文件
你可以使用C++标准库中的`<filesystem>`头文件来遍历指定文件夹下的所有文件,并使用字符串比较函数来筛选出后缀名匹配的文件。
下面是一个示例代码,假设你要获取`/path/to/folder`文件夹下的所有`.txt`文件:
```c++
#include <iostream>
#include <filesystem>
#include <string>
namespace fs = std::filesystem;
int main()
{
std::string folder_path = "/path/to/folder";
std::string extension = ".txt";
for (const auto& entry : fs::directory_iterator(folder_path))
{
if (fs::is_regular_file(entry.path()) && entry.path().extension() == extension)
{
std::cout << entry.path() << std::endl;
}
}
return 0;
}
```
这段代码会遍历`/path/to/folder`下的所有文件(包括子文件夹中的文件),如果发现是一个普通文件并且后缀名和`.txt`相同,就输出这个文件的路径。
使用c++,如何获取一个文件夹下的全部图片名称和路径?
在C++中,可以使用标准库中的`<filesystem>`来遍历文件夹中的文件,并使用正则表达式来判断文件是否为图片文件。以下是一个示例代码:
```c++
#include <iostream>
#include <filesystem>
#include <regex>
int main()
{
std::string path = "path_to_folder";
std::regex img_regex(".*\.(jpg|jpeg|png|bmp|gif)$"); // 匹配图片文件的正则表达式
for (const auto& entry : std::filesystem::directory_iterator(path))
{
if (std::filesystem::is_regular_file(entry.path()) && std::regex_match(entry.path().string(), img_regex))
{
std::cout << "Image name: " << entry.path().filename().string() << std::endl;
std::cout << "Image path: " << entry.path().string() << std::endl;
}
}
return 0;
}
```
需要注意的是,`<filesystem>`是C++17标准库中的一部分,如果你的编译器不支持C++17,则需要使用其他的文件操作库,比如Boost.Filesystem。
阅读全文