Continue enumerating files satisfying the criteria specified by the last call
to \helpref{GetFirst}{wxdirgetfirst}.
+\membersection{wxDir::HasFiles}\label{wxdirhasfiles}
+
+\func{bool}{HasFiles}{\param{const wxString& }{filespec = wxEmptyString}}
+
+Returns {\tt TRUE} if the directory contains any files matching the given
+{\it filespec}. If {\it filespec} is empty, look for any files at all. In any
+case, even hidden files are taken into account.
+
+\membersection{wxDir::HasSubDirs}\label{wxdirhassubdirs}
+
+\func{bool}{HasSubDirs}{\param{const wxString& }{dirspec = wxEmptyString}}
+
+Returns {\tt TRUE} if the directory contains any subdirectories (if a non
+empty {\it filespec} is given, only check for directories matching it).
+The hidden subdirectories are taken into account as well.
+
\membersection{wxDir::Traverse}\label{wxdirtraverse}
\func{size\_t}{Traverse}{\param{wxDirTraverser& }{sink}, \param{const wxString& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}}
const wxString& filespec = wxEmptyString,
int flags = wxDIR_DEFAULT) const;
- // get next file in the enumeration started with either GetFirst() or
- // GetFirstNormal()
+ // get next file in the enumeration started with GetFirst()
bool GetNext(wxString *filename) const;
+ // return true if this directory has any files in it
+ bool HasFiles(const wxString& spec = wxEmptyString)
+ { wxString s; return GetFirst(&s, spec, wxDIR_FILES | wxDIR_HIDDEN); }
+
+ // return true if this directory has any subdirectories
+ bool HasSubDirs(const wxString& spec = wxEmptyString)
+ { wxString s; return GetFirst(&s, spec, wxDIR_DIRS | wxDIR_HIDDEN); }
+
// enumerate all files in this directory and its subdirectories
//
// return the number of files found
#include "wx/log.h"
#include "wx/sizer.h"
#include "wx/tokenzr.h"
+#include "wx/dir.h"
#if wxUSE_STATLINE
#include "wx/statline.h"
bool wxDirItemData::HasSubDirs()
{
- wxString search = m_path + wxT("/*");
- wxLogNull log;
- wxString path = wxFindFirstFile( search, wxDIR );
- return (bool)(!path.IsNull());
+ return wxDir(m_path).HasSubDirs();
}
//-----------------------------------------------------------------------------
wxDirItemData *data = (wxDirItemData *)GetItemData(event.GetItem());
wxASSERT(data);
- wxString search,path,filename;
-
m_paths.Clear();
m_names.Clear();
-#ifdef __WXMSW__
- search = data->m_path + _T("\\*.*");
-#else
- search = data->m_path + _T("/*");
-#endif
- for (path = wxFindFirstFile( search, wxDIR ); !path.IsNull();
- path=wxFindNextFile() )
+
+ wxDir dir(data->m_path);
+
+ wxString filename;
+ bool cont = dir.GetFirst(&filename, "", wxDIR_DIRS | wxDIR_HIDDEN);
+ while ( cont )
{
- filename = wxFileNameFromPath( path );
- /* Don't add "." and ".." to the tree. I think wxFindNextFile
- * also checks this, but I don't quite understand what happens
- * there. Also wxFindNextFile seems to swallow hidden dirs */
- if ( (filename != _T(".")) && (filename != _T("..")) )
- {
- m_paths.Add(path);
- m_names.Add(filename);
- }
+ m_paths.Add(data->m_path);
+ m_names.Add(filename);
+
+ cont = dir.GetNext(&filename);
}
CreateItems( event.GetItem() );