// Purpose: interface of wxDir and wxDirTraverser
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
This is a pure virtual function and must be implemented in the derived
class.
*/
- virtual wxDirTraverseResult OnDir(const wxString& dirname);
+ virtual wxDirTraverseResult OnDir(const wxString& dirname) = 0;
/**
This function is called for each file. It may return ::wxDIR_STOP to
This is a pure virtual function and must be implemented in the derived
class.
*/
- virtual wxDirTraverseResult OnFile(const wxString& filename);
+ virtual wxDirTraverseResult OnFile(const wxString& filename) = 0;
/**
This function is called for each directory which we failed to open for
These flags define what kind of filenames are included in the list of files
enumerated by wxDir::GetFirst() and wxDir::GetNext().
*/
-enum
+enum wxDirFlags
{
wxDIR_FILES = 0x0001, ///< Includes files.
wxDIR_DIRS = 0x0002, ///< Includes directories.
wxDIR_HIDDEN = 0x0004, ///< Includes hidden files.
wxDIR_DOTDOT = 0x0008, ///< Includes "." and "..".
+ //! Combination of the @c wxDIR_FILES, @c wxDIR_DIRS, @c wxDIR_HIDDEN flags
+ //! defined above.
wxDIR_DEFAULT = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN
};
includes ::wxDIR_DIRS and so the function recurses into the
subdirectories but if this flag is not specified, the function
restricts the search only to the directory @a dirname itself.
+ See ::wxDirFlags for the list of the possible flags.
@see Traverse()
*/
The @a flags parameter should always include ::wxDIR_FILES or the array
would be unchanged and should include ::wxDIR_DIRS flag to recurse into
subdirectories (both flags are included in the value by default).
+ See ::wxDirFlags for the list of the possible flags.
+
+ @return Returns the total number of files found while traversing
+ the directory @a dirname (i.e. the number of entries appended
+ to the @a files array).
@see Traverse()
*/
/**
Start enumerating all files matching @a filespec (or all files if it is
empty) and @e flags, return @true on success.
+ See ::wxDirFlags for the list of the possible flags.
*/
bool GetFirst(wxString* filename,
const wxString& filespec = wxEmptyString,
*/
bool IsOpened() const;
+ /**
+ Creates a directory.
+
+ This is just an alias for wxFileName::Mkdir(); refer to that function
+ for more info.
+ */
+ static bool Make(const wxString &dir, int perm = wxS_DIR_DEFAULT,
+ int flags = 0);
+
/**
Open the directory for enumerating, returns @true on success or @false
if an error occurred.
*/
bool Open(const wxString& dir);
+ /**
+ Removes a directory.
+
+ This is just an alias for wxFileName::Rmdir(); refer to that function
+ for more info.
+ */
+ static bool Remove(const wxString &dir, int flags = 0);
+
/**
Enumerate all files and directories under the given directory
recursively calling the element of the provided wxDirTraverser object
@a flags contains ::wxDIR_DIRS flag. It will ignore the files (but
still possibly recurse into subdirectories) if ::wxDIR_FILES flag is
given.
+ See ::wxDirFlags for the list of the possible flags.
- For each found directory, @ref wxDirTraverser::OnDir() "sink.OnDir()"
+ For each directory found, @ref wxDirTraverser::OnDir() "sink.OnDir()"
is called and @ref wxDirTraverser::OnFile() "sink.OnFile()" is called
for every file. Depending on the return value, the enumeration may
continue or stop.
*/
size_t Traverse(wxDirTraverser& sink,
const wxString& filespec = wxEmptyString,
- int flags = wxDIR_DEFAULT);
+ int flags = wxDIR_DEFAULT) const;
};