class mrpt::system::CDirectoryExplorer

Overview

This class allows the enumeration of the files/directories that exist into a given path.

The only existing method is “explore” and returns the list of found files & directories. Refer to the example in /samples/UTILS/directoryExplorer

See also:

CFileSystemWatcher

#include <mrpt/system/CDirectoryExplorer.h>

class CDirectoryExplorer
{
public:
    // typedefs

    typedef std::deque<TFileInfo> TFileInfoList;

    // structs

    struct TFileInfo;

    // methods

    static TFileInfoList explore(const std::string& path, const unsigned long mask);

    static void explore(
        const std::string& path,
        const unsigned long mask,
        TFileInfoList& outList
        );

    static void sortByName(TFileInfoList& lstFiles, bool ascendingOrder = true);
    static void filterByExtension(TFileInfoList& lstFiles, const std::string& extension);
};

Typedefs

typedef std::deque<TFileInfo> TFileInfoList

The list type used in “explore”.

See also:

explore

Methods

static TFileInfoList explore(const std::string& path, const unsigned long mask)

The path of the directory to examine must be passed to this constructor, among the According to the following parameters, the object will collect the list of files, which can be modified later through other methods in this class.

Parameters:

path

The path to examine (IT MUST BE A DIRECTORY), e.g “d:temp", or “/usr/include/”

mask

One or the OR’ed combination of the values “FILE_ATTRIB_ARCHIVE” and “FILE_ATTRIB_DIRECTORY”, depending on what file types do you want in the list (These values are platform-independent).

outList

The list of found files/directories is stored here.

See also:

sortByName

static void sortByName(TFileInfoList& lstFiles, bool ascendingOrder = true)

Sort the file entries by name, in ascending or descending order.

static void filterByExtension(TFileInfoList& lstFiles, const std::string& extension)

Remove from the list of files those whose extension does not coincide (without case) with the given one.

Example: filterByExtension(lst,”txt”);