c++ 获取当前文件夹下某个匹配名称的文件路径
时间: 2023-10-04 20:04:21 浏览: 110
你可以使用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++中,获取一个文件夹下所有特定类型的文件名通常需要使用操作系统提供的API或库函数,如Windows API(FindFirstFile、FindNextFile)或POSIX系统下的目录遍历函数(递归地搜索子目录)。这里是一个基本的示例,展示了如何使用C++的《filesystem》库来完成这个任务:
```cpp
#include <iostream>
#include <filesystem>
void listFilesOfType(const std::string& folderPath, const std::string& fileType) {
for (const auto& entry : std::filesystem::directory_iterator(folderPath)) {
if (entry.is_regular_file() && entry.path().extension() == fileType) {
std::cout << "文件名: " << entry.path().filename() << std::endl;
}
}
}
int main() {
std::string folderToSearch = "/path/to/your/folder"; // 替换为你想要搜索的实际路径
std::string fileExtension = ".txt"; // 指定文件类型,这里是.txt
listFilesOfType(folderToSearch, fileExtension);
return 0;
}
```
在这个例子中,`listFilesOfType` 函数接收一个文件夹路径和文件类型(例如".txt"),然后遍历该目录及其子目录,如果找到的是普通文件并且扩展名匹配指定类型,就打印出文件名。
请注意,这只是一个基础版本,实际应用中可能还需要处理权限问题,异常情况等。
阅读全文
相关推荐















