确保在将用户提供的参数与目录迭代器一起使用之前将其转换为绝对路径,否则,它将显示用户提供的任何内容。
例子:
#include <filesystem>
#include <iostream>
#include <string_view>
#include <vector>
namespace fs = std::filesystem;
int ftw(const fs::path& p) {
// give an absolute path to the iterator
for (const auto& f : fs::recursive_directory_iterator(fs::absolute(p))) {
std::cout << f.path().string() << "\n";
}
return 0;
}
int cppmain(const std::string_view program, std::vector<std::string_view> args) {
for (const auto& arg : args)
ftw(arg);
return 0;
}
int main(int argc, char* argv[]) {
return cppmain(argv[0], { argv + 1, argv + argc });
}