subdirectorios listar ejemplos directorios crear consola comandos comando carpeta basicos boost boost-filesystem

boost - listar - crear carpeta ubuntu comandos



Ejemplo de boost directory_iterator: cómo listar archivos de directorio no recursivos (2)

¿Cómo debo usar directory_iterator para listar archivos de directorio (no recursivos)?

Además, ¿qué archivos de cabecera / libs debo agregar / vincular u otras configuraciones que debo hacer? Estoy usando boost en mi proyecto, pero por alguna razón directory_iterator es un "identificador no calificado" mientras puedo usar otras funciones de boost.

Actualizar

Otra solución:

#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''; }


El ejemplo tut3 es lo que estás buscando:

Véalo en vivo en Coliru

Aquí hay una versión simplificada basada en c ++ 11:

Vivir en 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"; } }

Puede ver que vinculé boost_system (para las instalaciones de código de error) y 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"


Una solución probada:

#include <boost/filesystem.hpp> #include <iterator> #include <iostream> #include <vector> using namespace boost::filesystem; int main(int argc, char *argv[]) { path p(argc>1? argv[1] : "."); std::vector<directory_entry> v; // To save the file names in a vector. if(is_directory(p)) { copy(directory_iterator(p), directory_iterator(), back_inserter(v)); std::cout << p << " is a directory containing:/n"; for ( std::vector<directory_entry>::const_iterator it = v.begin(); it != v.end(); ++ it ) { std::cout<< (*it).path().string()<<endl; } } }