我只是从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;
}
}
我只是希望目录中包含三个文件的列表。