无法使用boost

时间:2019-07-03 11:32:30

标签: c++ file boost directory

我只是从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;

    }
}

我只是希望目录中包含三个文件的列表。

0 个答案:

没有答案