c++递归读取文件夹
时间: 2024-08-23 17:01:35 浏览: 81
在 C++ 中,递归读取文件夹通常涉及到遍历目录结构并处理其下的所有文件和子目录。这里是一个简单的示例,展示如何使用 `std::filesystem` 库(C++17及以上版本)来实现这个功能:
```cpp
#include <iostream>
#include <filesystem>
void recursive_directory_traversal(const std::string& path) {
for (const auto& entry : std::filesystem::directory_iterator(path)) {
if (entry.is_regular_file()) { // 检查是否为普通文件
std::cout << "Found file: " << entry.path() << "\n";
} else if (entry.is_directory()) { // 检查是否为目录
std::cout << "Found directory: " << entry.path() << "\n";
// 递归地遍历子目录
recursive_directory_traversal(entry.path());
}
}
}
int main() {
try {
std::string root_path = "/path/to/directory"; // 替换为你要遍历的实际路径
recursive_directory_traversal(root_path);
} catch (const std::filesystem::filesystem_error& e) {
std::cerr << "Error: " << e.what() << '\n';
}
return 0;
}
```
在这个例子中,函数 `recursive_directory_traversal` 会接收一个目录路径,然后对每个条目执行检查。如果遇到的是文件,它会打印出来;如果是目录,则递归调用自身,直到遍历完整个目录树。
阅读全文