首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在标准C++中递归遍历每个文件/目录?

在标准C++中,递归遍历文件/目录可以通过使用<filesystem>库来实现。以下是一个简单的示例,展示了如何递归遍历目录及其子目录中的所有文件:

代码语言:cpp
复制
#include<iostream>
#include<filesystem>

void traverse_directory(const std::filesystem::path& path) {
    if (std::filesystem::is_directory(path)) {
        for (const auto& entry : std::filesystem::directory_iterator(path)) {
            if (entry.is_directory()) {
                traverse_directory(entry.path());
            } else {
                std::cout << "File: "<< entry.path()<< std::endl;
            }
        }
    } else {
        std::cout << "File: "<< path<< std::endl;
    }
}

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

在这个示例中,我们首先检查给定的路径是否为目录。如果是目录,我们遍历其中的所有条目,如果条目是另一个目录,我们递归地调用traverse_directory函数。如果条目是文件,我们将其路径打印到控制台。如果给定的路径不是目录,我们直接打印该路径。

请注意,这个示例仅适用于C++17及更高版本。如果您使用的是较旧的C++标准,您可能需要使用第三方库(如Boost.Filesystem)来实现类似的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券