// Created: 19.05.01
// RCS-ID: $Id$
// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// License: wxWindows licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
#endif // !Unix
+// ----------------------------------------------------------------------------
+// wxDir::GetNameWithSep()
+// ----------------------------------------------------------------------------
+
+wxString wxDir::GetNameWithSep() const
+{
+ // Note that for historical reasons (i.e. because GetName() was there
+ // first) we implement this one in terms of GetName() even though it might
+ // actually make more sense to reverse this logic.
+
+ wxString name = GetName();
+ if ( !name.empty() )
+ {
+ // Notice that even though GetName() isn't supposed to return the
+ // separator, it can still be present for the root directory name.
+ if ( name.Last() != wxFILE_SEP_PATH )
+ name += wxFILE_SEP_PATH;
+ }
+
+ return name;
+}
+
// ----------------------------------------------------------------------------
// wxDir::Traverse()
// ----------------------------------------------------------------------------
size_t nFiles = 0;
// the name of this dir with path delimiter at the end
- wxString prefix = GetName();
- prefix += wxFILE_SEP_PATH;
+ const wxString prefix = GetNameWithSep();
// first, recurse into subdirs
if ( flags & wxDIR_DIRS )
{
wxString dirname;
- for ( bool cont = GetFirst(&dirname, wxEmptyString, wxDIR_DIRS | (flags & wxDIR_HIDDEN) );
+ for ( bool cont = GetFirst(&dirname, wxEmptyString,
+ (flags & ~(wxDIR_FILES | wxDIR_DOTDOT))
+ | wxDIR_DIRS);
cont;
cont = cont && GetNext(&dirname) )
{
return wxInvalidSize;
wxDirTraverserSumSize traverser;
- if (dir.Traverse(traverser) == (size_t)-1 ||
- traverser.GetTotalSize() == 0)
+ if (dir.Traverse(traverser) == (size_t)-1 )
return wxInvalidSize;
if (filesSkipped)
}
#endif // wxUSE_LONGLONG
+
+// ----------------------------------------------------------------------------
+// wxDir helpers
+// ----------------------------------------------------------------------------
+
+/* static */
+bool wxDir::Exists(const wxString& dir)
+{
+ return wxFileName::DirExists(dir);
+}
+
+/* static */
+bool wxDir::Make(const wxString &dir, int perm, int flags)
+{
+ return wxFileName::Mkdir(dir, perm, flags);
+}
+
+/* static */
+bool wxDir::Remove(const wxString &dir, int flags)
+{
+ return wxFileName::Rmdir(dir, flags);
+}
+