请写一个快速生成目录树的c++代码
时间: 2024-03-21 08:42:39 浏览: 19
以下是一个简单的 C++ 代码,可以使用递归方法快速生成目录树:
```c++
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
void generate_tree(const fs::path& path, const std::string& prefix = "") {
if (!fs::exists(path)) return;
std::cout << prefix << "+--" << path.filename().string() << std::endl;
if (fs::is_directory(path)) {
prefix += " ";
for (auto& entry : fs::directory_iterator(path)) {
generate_tree(entry.path(), prefix);
}
}
}
int main() {
fs::path path_to_directory("path/to/directory");
generate_tree(path_to_directory);
return 0;
}
```
此代码使用 `std::filesystem` 库,它是 C++17 中引入的标准库。它遍历指定目录并打印目录树,使用 `fs::directory_iterator` 遍历目录中的所有文件和子目录,并检查每个子目录是否存在。如果是子目录,递归调用 `generate_tree` 函数以生成该目录的子目录。