]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dir.h
Avoid needless second string conversion when adding files to memory FS.
[wxWidgets.git] / interface / wx / dir.h
index 2e1c29d086b98e3b38e3108dad413c01636bff5c..ecf8ffb724c2b75306bf2a3e13851dd61a5aacf6 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxDir and wxDirTraverser
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Purpose:     interface of wxDir and wxDirTraverser
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -68,7 +68,7 @@ public:
         This is a pure virtual function and must be implemented in the derived
         class.
     */
         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 function is called for each file. It may return ::wxDIR_STOP to
@@ -78,7 +78,7 @@ public:
         This is a pure virtual function and must be implemented in the derived
         class.
     */
         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
 
     /**
         This function is called for each directory which we failed to open for
@@ -97,13 +97,15 @@ public:
     These flags define what kind of filenames are included in the list of files
     enumerated by wxDir::GetFirst() and wxDir::GetNext().
 */
     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 "..".
 
 {
     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
 };
 
     wxDIR_DEFAULT   = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN
 };
 
@@ -177,6 +179,7 @@ public:
         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.
         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()
     */
 
         @see Traverse()
     */
@@ -193,6 +196,11 @@ public:
         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).
         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()
     */
 
         @see Traverse()
     */
@@ -203,6 +211,7 @@ public:
     /**
         Start enumerating all files matching @a filespec (or all files if it is
         empty) and @e flags, return @true on success.
     /**
         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 GetFirst(wxString* filename,
                   const wxString& filespec = wxEmptyString,
@@ -224,7 +233,7 @@ public:
         Returns the size (in bytes) of all files recursively found in @c dir or
         @c wxInvalidSize in case of error.
 
         Returns the size (in bytes) of all files recursively found in @c dir or
         @c wxInvalidSize in case of error.
 
-        In case it happens that while traversing folders a file's size can not
+        In case it happens that while traversing folders a file's size cannot
         be read, that file is added to the @a filesSkipped array, if not @NULL,
         and then skipped. This usually happens with some special folders which
         are locked by the operating system or by another process. Remember that
         be read, that file is added to the @a filesSkipped array, if not @NULL,
         and then skipped. This usually happens with some special folders which
         are locked by the operating system or by another process. Remember that
@@ -257,12 +266,29 @@ public:
     */
     bool IsOpened() const;
 
     */
     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);
 
     /**
         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
     /**
         Enumerate all files and directories under the given directory
         recursively calling the element of the provided wxDirTraverser object
@@ -272,8 +298,9 @@ public:
         @a flags contains ::wxDIR_DIRS flag. It will ignore the files (but
         still possibly recurse into subdirectories) if ::wxDIR_FILES flag is
         given.
         @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.
         is called and @ref wxDirTraverser::OnFile() "sink.OnFile()" is called
         for every file. Depending on the return value, the enumeration may
         continue or stop.
@@ -285,6 +312,6 @@ public:
     */
     size_t Traverse(wxDirTraverser& sink,
                     const wxString& filespec = wxEmptyString,
     */
     size_t Traverse(wxDirTraverser& sink,
                     const wxString& filespec = wxEmptyString,
-                    int flags = wxDIR_DEFAULT);
+                    int flags = wxDIR_DEFAULT) const;
 };
 
 };