]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/dir.tex
wxPlatformInfo::IsUsingUniversalWidgets() was broken by design, it couldn't work...
[wxWidgets.git] / docs / latex / wx / dir.tex
CommitLineData
35332784
VZ
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: dir.tex
3%% Purpose: wxDir documentation
4%% Author: Vadim Zeitlin
5%% Modified by:
6%% Created: 04.04.00
7%% RCS-ID: $Id$
8%% Copyright: (c) Vadim Zeitlin
8795498c 9%% License: wxWindows license
35332784 10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4afd7529
VZ
11
12\section{\class{wxDir}}\label{wxdir}
13
14wxDir is a portable equivalent of Unix {open/read/close}dir functions which
154b6b0f
VZ
15allow enumerating of the files in a directory. wxDir allows to enumerate files
16as well as directories.
4afd7529 17
35332784
VZ
18wxDir also provides a flexible way to enumerate files recursively using
19\helpref{Traverse}{wxdirtraverse} or a simpler
20\helpref{GetAllFiles}{wxdirgetallfiles} function.
21
4afd7529
VZ
22Example of use:
23
24\begin{verbatim}
25 wxDir dir(wxGetCwd());
26
27 if ( !dir.IsOpened() )
28 {
29 // deal with the error here - wxDir would already log an error message
30 // explaining the exact reason of the failure
31 return;
32 }
33
34 puts("Enumerating object files in current directory:");
35
36 wxString filename;
37
38 bool cont = dir.GetFirst(&filename, filespec, flags);
39 while ( cont )
40 {
41 printf("%s\n", filename.c_str());
42
43 cont = dir.GetNext(&filename);
44 }
45\end{verbatim}
46
47\wxheading{Derived from}
48
49No base class
50
51\wxheading{Constants}
52
e00a5d3c
JS
53These flags define what kind of filename is included in the list of files
54enumerated by GetFirst/GetNext.
4afd7529
VZ
55
56{\small
57\begin{verbatim}
58enum
59{
60 wxDIR_FILES = 0x0001, // include files
61 wxDIR_DIRS = 0x0002, // include directories
62 wxDIR_HIDDEN = 0x0004, // include hidden files
63 wxDIR_DOTDOT = 0x0008, // include '.' and '..'
64
65 // by default, enumerate everything except '.' and '..'
85ec2f26 66 wxDIR_DEFAULT = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN
4afd7529
VZ
67}
68\end{verbatim}
69}
70
71\wxheading{Include files}
72
73<wx/dir.h>
74
75\latexignore{\rtfignore{\wxheading{Members}}}
76
4afd7529
VZ
77\membersection{wxDir::wxDir}\label{wxdirwxdir}
78
79\func{}{wxDir}{\void}
80
81Default constructor, use \helpref{Open()}{wxdiropen} afterwards.
82
83\func{}{wxDir}{\param{const wxString\& }{dir}}
84
85Opens the directory for enumeration, use \helpref{IsOpened()}{wxdirisopened}
86to test for errors.
87
55427034 88
4afd7529
VZ
89\membersection{wxDir::\destruct{wxDir}}\label{wxdirdtor}
90
91\func{}{\destruct{wxDir}}{\void}
92
2edb0bde 93Destructor cleans up the associated resources. It is not virtual and so this
4afd7529
VZ
94class is not meant to be used polymorphically.
95
4afd7529 96
55427034 97\membersection{wxDir::Exists}\label{wxdirexists}
4afd7529 98
55427034 99\func{static bool}{Exists}{\param{const wxString\& }{dir}}
4afd7529 100
55427034 101Test for existence of a directory with the given name
4afd7529 102
4afd7529 103
55427034
VZ
104\membersection{wxDir::GetAllFiles}\label{wxdirgetallfiles}
105
106\func{static size\_t}{GetAllFiles}{\param{const wxString\& }{dirname}, \param{wxArrayString *}{files}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}}
107
108The function appends the names of all the files under directory {\it dirname}
43e8916f 109to the array {\it files} (note that its old content is preserved). Only files
55427034
VZ
110matching the {\it filespec} are taken, with empty spec matching all the files.
111
112The {\it flags} parameter should always include {\tt wxDIR\_FILES} or the array
113would be unchanged and should include {\tt wxDIR\_DIRS} flag to recurse into
114subdirectories (both flags are included in the value by default).
115
116See also: \helpref{Traverse}{wxdirtraverse}
117
4afd7529 118
d1af8e2d
VZ
119\membersection{wxDir::FindFirst}\label{wxdirfindfirst}
120
121\func{static wxString}{FindFirst}{\param{const wxString\& }{dirname}, \param{const wxString\& }{filespec}, \param{int }{flags = wxDIR\_DEFAULT}}
122
123The function returns the path of the first file matching the given \arg{filespec}
124or an empty string if there are no files matching it.
125
126The \arg{flags} parameter may or may not include {\tt wxDIR\_FILES}, the
127function always behaves as if it were specified. By default, \arg{flags}
128includes {\tt wxDIR\_DIRS} and so the function recurses into the subdirectories
129but if this flag is not specified, the function restricts the search only to
130the directory \arg{dirname} itself.
131
132See also: \helpref{Traverse}{wxdirtraverse}
133
134
4afd7529
VZ
135\membersection{wxDir::GetFirst}\label{wxdirgetfirst}
136
137\constfunc{bool}{GetFirst}{\param{wxString* }{filename}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}}
138
139Start enumerating all files matching {\it filespec} (or all files if it is
cc81d32f 140empty) and flags, return true on success.
4afd7529 141
55427034
VZ
142
143\membersection{wxDir::GetName}\label{wxdirgetname}
144
145\constfunc{wxString}{GetName}{\void}
146
147Returns the name of the directory itself. The returned string does not have the
148trailing path separator (slash or backslash).
149
150
4afd7529
VZ
151\membersection{wxDir::GetNext}\label{wxdirgetnext}
152
153\constfunc{bool}{GetNext}{\param{wxString* }{filename}}
154
154b6b0f
VZ
155Continue enumerating files which satisfy the criteria specified by the last
156call to \helpref{GetFirst}{wxdirgetfirst}.
4afd7529 157
55427034 158
d9ff0f91
VZ
159\membersection{wxDir::HasFiles}\label{wxdirhasfiles}
160
7af3ca16 161\func{bool}{HasFiles}{\param{const wxString\& }{filespec = wxEmptyString}}
d9ff0f91 162
cc81d32f 163Returns {\tt true} if the directory contains any files matching the given
d9ff0f91
VZ
164{\it filespec}. If {\it filespec} is empty, look for any files at all. In any
165case, even hidden files are taken into account.
166
55427034 167
d9ff0f91
VZ
168\membersection{wxDir::HasSubDirs}\label{wxdirhassubdirs}
169
7af3ca16 170\func{bool}{HasSubDirs}{\param{const wxString\& }{dirspec = wxEmptyString}}
d9ff0f91 171
cc81d32f 172Returns {\tt true} if the directory contains any subdirectories (if a non
d9ff0f91
VZ
173empty {\it filespec} is given, only check for directories matching it).
174The hidden subdirectories are taken into account as well.
175
55427034
VZ
176
177\membersection{wxDir::IsOpened}\label{wxdirisopened}
178
179\constfunc{bool}{IsOpened}{\void}
180
181Returns true if the directory was successfully opened by a previous call to
182\helpref{Open}{wxdiropen}.
183
184
185\membersection{wxDir::Open}\label{wxdiropen}
186
187\func{bool}{Open}{\param{const wxString\& }{dir}}
188
154b6b0f
VZ
189Open the directory for enumerating, returns {\tt true} on success
190or {\tt false} if an error occurred.
55427034
VZ
191
192
94f562a2 193\membersection{wxDir::Traverse}\label{wxdirtraverse}
35332784 194
7af3ca16 195\func{size\_t}{Traverse}{\param{wxDirTraverser\& }{sink}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}}
35332784
VZ
196
197Enumerate all files and directories under the given directory recursively
198calling the element of the provided \helpref{wxDirTraverser}{wxdirtraverser}
199object for each of them.
200
201More precisely, the function will really recurse into subdirectories if
202{\it flags} contains {\tt wxDIR\_DIRS} flag. It will ignore the files (but
203still possibly recurse into subdirectories) if {\tt wxDIR\_FILES} flag is
204given.
205
206For each found directory, \helpref{sink.OnDir()}{wxdirtraverserondir} is called
207and \helpref{sink.OnFile()}{wxdirtraverseronfile} is called for every file.
208Depending on the return value, the enumeration may continue or stop.
209
210The function returns the total number of files found or {\tt (size\_t)-1} on
211error.
212
2e64ba46 213See also: \helpref{GetAllFiles}{wxdirgetallfiles}
35332784 214