gpt4 book ai didi

boost - boost directory_iterator示例-如何列出不递归的目录文件

转载 作者:行者123 更新时间:2023-12-03 08:46:26 25 4
gpt4 key购买 nike

我应该如何使用directory_iterator列出目录文件(不是递归的)?

另外,我应该添加/链接哪些头文件/ lib或应进行的其他设置?我在项目中使用了boost,但是由于某种原因directory_iterator是“声明不足的标识符”,而我可以使用其他boost功能。

更新

另一个解决方案:

#include <filesystem>
#include <boost/filesystem.hpp>
#include <iostream>

using namespace boost::filesystem;

for (directory_iterator itr(path_ss); itr!=directory_iterator(); ++itr)
{
cout << itr->path().filename() << ' '; // display filename only
if (is_regular_file(itr->status())) cout << " [" << file_size(itr->path()) << ']';
cout << '\n';
}

最佳答案

您需要的是 tut3 example :

看到它 Live on Coliru

这是基于c++ 11的简化版本:

Live On Coliru

#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
#include <iostream>

using namespace boost::filesystem;

int main(int argc, char *argv[]) {
path p(argc>1? argv[1] : ".");

if(is_directory(p)) {
std::cout << p << " is a directory containing:\n";

for(auto& entry : boost::make_iterator_range(directory_iterator(p), {}))
std::cout << entry << "\n";
}
}

您可以看到我链接了boost_system(用于错误代码功能)和boost_filesystem:
g++ -std=c++11 -Os -Wall -pedantic main.cpp -lboost_system -lboost_filesystem && ./a.out .
"." is a directory containing:
"./main.cpp"
"./a.out"

关于boost - boost directory_iterator示例-如何列出不递归的目录文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20923456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com