Skip to content

Rose::FileSystem::findNamesRecursively

Recursive list of names satisfying predicate.

Synopsis

Declared in <src/Rose/FileSystem.h>

template<
    class Select,
    class Descend>
std::vector<Path>
findNamesRecursively(
    Path const& root,
    Select select,
    Descend descend);

Description

Returns a list of entries in a directory and all subdirectories recursively. The return value is a sorted list of paths, each of which contains root as a prefix. If a select predicate is supplied then only paths for which the predicate returns true become part of the return value. If a descend predicate is supplied then this algorithm only recurses into subdirectories for which descend returns true. The predicates are called with the path that would become part of the return value. The root itself is never returned and never tested by the select or descend predicates.

If select is not specified then all entries are returned. If descend is not specified then the algorithm traverses into all subdirectories. Symbolic links to directories are never followed, but are returned if the select predicate allows them.

@{

Return Value

Sorted list of matching paths.

Parameters

Name

Description

root

Directory to search.

select

Predicate to include paths.

descend

Predicate controlling recursion.

Created with MrDocs