我想遍历与“keyword.txt”匹配的目录中的所有文件。我在 google 中搜索了一些解决方案,发现: 我可以使用掩码来使用 Boost 迭代目录中的文件吗?
正如我后来发现的那样,“leaf()”函数已被替换(来源: http: //www.boost.org/doc/libs/1_41_0/libs/filesystem/doc/index.htm -> goto section 'Deprecated名称和特征')
到目前为止我得到的是这个,但它没有运行。抱歉这个有点愚蠢的问题,但我或多或少是一个 C++ 初学者。
const std::string target_path( "F:\\data\\" );
const boost::regex my_filter( "keyword.txt" );
std::vector< std::string > all_matching_files;
boost::filesystem::directory_iterator end_itr; // Default ctor yields past-the-end
for( boost::filesystem::directory_iterator i( target_path ); i != end_itr; ++i )
{
// Skip if not a file
if( !boost::filesystem::is_regular_file( i->status() ) ) continue;
boost::smatch what;
// Skip if no match
if( !boost::regex_match( i->path().filename(), what, my_filter ) ) continue;
// File matches, store it
all_matching_files.push_back( i->path().filename() );
}