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 fromNo 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
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.
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.
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.