dev/cpp/boost/dir_recurs/dir_recurs.cpp

39 lines
1011 B
C++

#include <iostream>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
using namespace std;
using namespace boost;
using namespace boost::filesystem;
static void Process_Files(const path & Path, bool recurse)
{
cout << "Processing folder " << Path.native_file_string() << "\n";
directory_iterator end_itr; // default construction yields past-the-end
for (directory_iterator itr(Path); itr != end_itr; ++itr) {
if (recurse && is_directory(*itr)) {
// Погружаемся на 1 уровень вниз по дереву каталогов
path Deeper(*itr);
Process_Files(Deeper, recurse);
continue;
}
// Файл, путь к которому содержится в filename, можно обрабатывать.
string filename = itr->file_string();
cout << filename << "\n";
}
return;
}
int main(int argc, char *argv[])
{
bool recurse = true; // обходить ли каталоги
Process_Files(current_path(), recurse);
return 0;
}