## wxDirTraverser

wxDirTraverser is an abstract interface which must be implemented by objects passed to Traverse function.

Example of use (this works almost like GetAllFiles):

        class wxDirTraverserSimple : public wxDirTraverser
        {
        public:
            wxDirTraverserSimple(wxArrayString& files) : m_files(files) { }

            virtual wxDirTraverseResult OnFile(const wxString& filename)
            {
                m_files.Add(filename);
                return wxDIR_CONTINUE;
            }

            virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname))
            {
                return wxDIR_CONTINUE;
            }

        private:
            wxArrayString& m_files;
        };

        // get the names of all files in the array
        wxArrayString files;
        wxDirTraverserSimple traverser(files);

        wxDir dir(dirname);
        dir.Traverse(traverser);

Derived from

No base class

Constants

The elements of `wxDirTraverseResult` are the possible return values of the callback functions:

    enum wxDirTraverseResult
    {
        wxDIR_IGNORE = -1,      // ignore this directory but continue with others
        wxDIR_STOP,             // stop traversing
        wxDIR_CONTINUE          // continue into this directory
    };

Include files

<wx/dir.h>

Members

wxDirTraverser::OnDir
wxDirTraverser::OnFile
wxOpenErrorTraverser::OnOpenError

### wxDirTraverser::OnDir

virtual wxDirTraverseResult OnDir(const wxString& dirname)

This function is called for each directory. It may return `wxSIR_STOP` to abort traversing completely, `wxDIR_IGNORE` to skip this directory but continue with others or `wxDIR_CONTINUE` to enumerate all files and subdirectories in this directory.

This is a pure virtual function and must be implemented in the derived class.

### wxDirTraverser::OnFile

virtual wxDirTraverseResult OnFile(const wxString& filename)

This function is called for each file. It may return `wxDIR_STOP` to abort traversing (for example, if the file being searched is found) or `wxDIR_CONTINUE` to proceed.

This is a pure virtual function and must be implemented in the derived class.

### wxOpenErrorTraverser::OnOpenError

virtual wxOpenErrorTraverseResult OnOpenError(const wxString& openerrorname)

This function is called for each directory which we failed to open for enumerating. It may return `wxSIR_STOP` to abort traversing completely, `wxDIR_IGNORE` to skip this directory but continue with others or `wxDIR_CONTINUE` to retry opening this directory once again.

The base class version always returns `wxDIR_IGNORE`.