added wxDir::FindFirst() (modified patch 1525502)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-08-13 00:23:58 +00:00
parent afbfbfdf2b
commit d1af8e2dd9
4 changed files with 75 additions and 0 deletions

View File

@@ -236,3 +236,51 @@ size_t wxDir::GetAllFiles(const wxString& dirname,
return nFiles;
}
// ----------------------------------------------------------------------------
// wxDir::FindFirst()
// ----------------------------------------------------------------------------
class wxDirTraverserFindFirst : public wxDirTraverser
{
public:
wxDirTraverserFindFirst() { }
virtual wxDirTraverseResult OnFile(const wxString& filename)
{
m_file = filename;
return wxDIR_STOP;
}
virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname))
{
return wxDIR_CONTINUE;
}
const wxString& GetFile() const
{
return m_file;
}
private:
wxString m_file;
DECLARE_NO_COPY_CLASS(wxDirTraverserFindFirst)
};
/* static */
wxString wxDir::FindFirst(const wxString& dirname,
const wxString& filespec,
int flags)
{
wxDir dir(dirname);
if ( dir.IsOpened() )
{
wxDirTraverserFindFirst traverser;
dir.Traverse(traverser, filespec, flags | wxDIR_FILES);
return traverser.GetFile();
}
return wxEmptyString;
}