c++

c++遍历文件支持递归操作吗

小樊
84
2024-12-06 04:23:54
栏目: 编程语言

C++ 本身不直接支持递归遍历文件夹,但你可以使用标准库中的 filesystem 库(C++17 起可用)来实现递归遍历文件夹。以下是一个简单的示例:

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

void traverse_directory(const fs::path& path) {
    for (const auto& entry : fs::recursive_directory_iterator(path)) {
        if (fs::is_regular_file(entry)) {
            std::cout << "File: " << entry.path() << std::endl;
        } else if (fs::is_directory(entry)) {
            std::cout << "Directory: " << entry.path() << std::endl;
            traverse_directory(entry.path()); // 递归遍历子目录
        }
    }
}

int main() {
    fs::path root_path = "path/to/your/directory";
    traverse_directory(root_path);
    return 0;
}

这个示例中,traverse_directory 函数接受一个 fs::path 参数,然后使用 fs::recursive_directory_iterator 遍历指定路径下的所有文件和子目录。如果遇到文件,就输出文件路径;如果遇到子目录,就递归调用 traverse_directory 函数继续遍历子目录。

0
看了该问题的人还看了