git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			110 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/dir.h
 | |
| // Purpose:     wxDir is a class for enumerating the files in a directory
 | |
| // Author:      Vadim Zeitlin
 | |
| // Modified by:
 | |
| // Created:     08.12.99
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 | |
| // Licence:     wxWindows license
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_DIR_H_
 | |
| #define _WX_DIR_H_
 | |
| 
 | |
| #ifdef __GNUG__
 | |
|     #pragma interface "dir.h"
 | |
| #endif
 | |
| 
 | |
| #ifndef WX_PRECOMP
 | |
|     #include  "wx/string.h"
 | |
| #endif
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // constants
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| // these flags define what kind of filenames is included in the list of files
 | |
| // enumerated by GetFirst/GetNext
 | |
| enum
 | |
| {
 | |
|     wxDIR_FILES     = 0x0001,       // include files
 | |
|     wxDIR_DIRS      = 0x0002,       // include directories
 | |
|     wxDIR_HIDDEN    = 0x0004,       // include hidden files
 | |
|     wxDIR_DOTDOT    = 0x0008,       // include '.' and '..'
 | |
| 
 | |
|     // by default, enumerate everything except '.' and '..'
 | |
|     wxDIR_DEFAULT   = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN
 | |
| };
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // wxDir: portable equivalent of {open/read/close}dir functions
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLEXPORT wxDir
 | |
| {
 | |
| public:
 | |
|     // test for existence of a directory with the given name
 | |
|     static bool Exists(const wxString& dir);
 | |
| 
 | |
|     // ctors
 | |
|     // -----
 | |
| 
 | |
|     // default, use Open()
 | |
|     wxDir() { m_data = NULL; }
 | |
| 
 | |
|     // opens the directory for enumeration, use IsOpened() to test success
 | |
|     wxDir(const wxString& dir);
 | |
| 
 | |
|     // dtor cleans up the associated ressources
 | |
|     ~wxDir();
 | |
| 
 | |
|     // open the directory for enumerating
 | |
|     bool Open(const wxString& dir);
 | |
| 
 | |
|     // returns TRUE if the directory was successfully opened
 | |
|     bool IsOpened() const;
 | |
| 
 | |
|     // file enumeration routines
 | |
|     // -------------------------
 | |
| 
 | |
|     // start enumerating all files matching filespec (or all files if it is
 | |
|     // empty) and flags, return TRUE on success
 | |
|     bool GetFirst(wxString *filename,
 | |
|                   const wxString& filespec = wxEmptyString,
 | |
|                   int flags = wxDIR_DEFAULT) const;
 | |
| 
 | |
|     // get next file in the enumeration started with either GetFirst() or
 | |
|     // GetFirstNormal()
 | |
|     bool GetNext(wxString *filename) const;
 | |
| 
 | |
|     // TODO using scandir() when available later, emulating it otherwise
 | |
| #if 0
 | |
|     // get all files in the directory into an array, return TRUE on success
 | |
|     //
 | |
|     // this function uses Select() function to select the files
 | |
|     // unless the filespec is explicitly given and Compare() function to sort
 | |
|     // them
 | |
|     bool Read(wxArrayString& filenames,
 | |
|               const wxString& filespec = wxEmptyString) const;
 | |
| 
 | |
| protected:
 | |
|     // this function is called by Read() if filespec is not specified in
 | |
|     // Read(): it should return TRUE if the file matches our selection
 | |
|     // criteria and FALSE otherwise
 | |
|     virtual bool Select(const wxChar* filename);
 | |
| 
 | |
|     // This function is called by Read() to sort the array: it should return
 | |
|     // -1, 0 or +1 if the first file is less than, equal to or greater than
 | |
|     // the second. The base class version does 
 | |
|     virtual int Compare(const wxChar *filename1, const wxChar *filename2);
 | |
| #endif // 0
 | |
| 
 | |
| private:
 | |
|     friend class WXDLLEXPORT wxDirData;
 | |
| 
 | |
|     wxDirData *m_data;
 | |
| };
 | |
| 
 | |
| #endif // _WX_DIR_H_
 |