Невозможно создать список файлов в каталоге с boost - PullRequest
0 голосов
/ 03 июля 2019

Я только что скопировал следующий фрагмент кода из другого вопроса, опубликованного в Stackoverflow. И я хотел знать, как создать список файлов в каталоге, который содержит общее окончание. Я закончил понимать, как настроить свой проект, чтобы он мог включать в себя повышение библиотеки. Однако при запуске моего кода я получаю следующее сообщение об ошибке:

D:\CPP_Dev\Create_Virtual_Raster\Create_Virtual_Raster\create_list.cpp:26:66: error: 'ret' was not declared in this scope
if (fs::is_regular_file(*it) && it->path().extension() == ext) ret.push_back(it->path().filename());

Фрагмент кода, который я только что запустил, таков:

Я уже установил повышение библиотеки, чтобы включить его в мой код. Я проверил проблемы с точками с запятой и объявлениями типов данных.

#define BOOST_FILESYSTEM_VERSION 3
#define BOOST_FILESYSTEM_NO_DEPRECATED 
#include <boost/filesystem.hpp>
#include <string>
#include <iostream>
#include <boost/filesystem.hpp>


namespace fs = ::boost::filesystem;

// return the filenames of all files that have the specified extension
// in the specified directory and all subdirectories

string path = "D:/_TEST_MOSAICING_S1_TOOL/S1A_IW_SLC__1SDV_20180111T043843_20180111T043910_020102_02245A_1664";
string ext = ".tif";

void get_all(const fs::path& root, const string& ext, vector<fs::path>&   ret)
{
    if (!fs::exists(root) || !fs::is_directory(root)) return;

    fs::recursive_directory_iterator it(root);
    fs::recursive_directory_iterator endit;

    while (it != endit)
    {
        if (fs::is_regular_file(*it) && it->path().extension() == ext) ret.push_back(it->path().filename());
       ++it;

    }
}

Я только что ожидал список из трех файлов, включенных в каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...