CoreComponents 4.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
DirWalk Class Reference

Recursive directory tree traversal. More...

#include <cc/DirWalk>

Inheritance diagram for DirWalk:

Public Types

enum  Mode {
  Default = 0 , FilesOnly = 1 , DirsOnly = 2 , FollowSymlink = 8 ,
  IgnoreHidden = 16 , DeleteOrder = 32 , NotADir = 64
}
 Mode of operation. More...
using Item = String
 Item type.
Public Types inherited from Object
using NullAccess = cc::NullAccess
 Error thrown when trying to access a null object.
using VirginityTestFailed = cc::VirginityTestFailed
 Error thrown when trying to initialize an object with a non-virgin state.

Public Member Functions

 DirWalk ()=default
 Create a null object.
 DirWalk (const String &path, Mode mode=Mode::Default, int maxDepth=-1)
 Open directory at path for recursive tree traversal.
bool read (Out< String > path)
 Read next path.
bool read (Out< String > path, Out< bool > isDir)
 Read next path.
SourceIterator< DirWalkbegin ()
 Iteration start.
SourceIterator< DirWalkend ()
 Iteration end.
Public Member Functions inherited from Object
 Object ()=default
 Create a null object.
 operator bool () const
 Check if this is a non-null object.
bool isNull () const
 Check if this is a null object.
int useCount () const
 Reference count.
template<class T>
bool is () const
 Check if this object is of type T.
template<class T>
as () const
 Cast this object to type T.
bool isWeak () const
 Check if the underlying object reference is weak.
bool operator== (const Object &other) const
 Equality operator.
std::strong_ordering operator<=> (const Object &other) const
 Ordering operator.

Additional Inherited Members

Protected Member Functions inherited from Object
template<class T>
weak () const
template<class T>
void initOnce ()
 Create the object state when called the first time.
template<class T>
void initOncePerThread ()
 Create a distinct object state for each thread when called the first time in that thread.
 Object (State *newState)
 Initialize object with newState.
 Object (State *state, Alias)
 Object (State *state, Weak)
Objectoperator= (std::nullptr_t)
Static Protected Member Functions inherited from Object
template<class T>
static T alias (const State *state)
 Create an alias object for the given state.
template<class T>
static T weak (const State *state)
Protected Attributes inherited from Object
Handle< Stateme
 Internal object state

Detailed Description

Recursive directory tree traversal.

Member Typedef Documentation

◆ Item

using Item = String

Item type.

Member Enumeration Documentation

◆ Mode

enum Mode

Mode of operation.

Enumerator
Default 

Default options.

FilesOnly 

Deliver paths of (non-directory) files, only.

DirsOnly 

Deliver paths of directories, only.

FollowSymlink 

Follow symlinks.

IgnoreHidden 

Ignore hidden files.

DeleteOrder 

Iterate paths suitable for recursive deletion.

Constructor & Destructor Documentation

◆ DirWalk() [1/2]

DirWalk ( )
default

Create a null object.

◆ DirWalk() [2/2]

DirWalk ( const String & path,
Mode mode = Mode::Default,
int maxDepth = -1 )
explicit

Open directory at path for recursive tree traversal.

Member Function Documentation

◆ read() [1/2]

bool read ( Out< String > path)

Read next path.

Parameters
pathReturns the next path
Returns
True if not end of information

◆ read() [2/2]

bool read ( Out< String > path,
Out< bool > isDir )

Read next path.

Parameters
pathReturns the next path
isDirTrue if the returned path points to a directory
Returns
True if not end of information

◆ begin()

SourceIterator< DirWalk > begin ( )

Iteration start.

◆ end()

SourceIterator< DirWalk > end ( )

Iteration end.