← index
cplusplus17.Examples/examples/filesystem/list_dir/list_dir.cpp
Source: cplusplus17.Examples/examples/filesystem/list_dir/list_dir.cpp
#include<iostream>
#include<string>
#include<filesystem>

int main(int argc, char **argv) {
    if(argc == 1) {
        std::cerr << argv[0] << " directory \n";
        std::cerr << argv[0] << " directory -r (recursive)\n";
        return 0;
    }
    if(argc == 3 && std::string(argv[2]) == "-r") {
        std::filesystem::path p{argv[1]};
        if(is_directory(p)) {
            for(auto &i : std::filesystem::recursive_directory_iterator(argv[1])) {
                std::cout << i.path().string() << "\n";
            }
        } else {
            std::cerr << "invalid input..\n";
        }
    }
    if(argc == 2) {
        std::filesystem::path p{argv[1]};
        if(is_directory(p)) {
            for(auto &i : std::filesystem::directory_iterator(argv[1])) {
                std::cout << i.path().string() << "\n";
            }
        } else {
            std::cerr << "invalid input..\n";
        }
    }
    return 0;
}