]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/filename.tex
document that Remove(index) doesn't delete the window neither (replaces patch 1470834)
[wxWidgets.git] / docs / latex / wx / filename.tex
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 %% Name: filename.tex
3 %% Purpose: wxFileName documentation
4 %% Author: Vadim Zeitlin
5 %% Modified by:
6 %% Created: 30.11.01
7 %% RCS-ID: $Id$
8 %% Copyright: (c) 2001 Vadim Zeitlin
9 %% License: wxWindows license
10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12 \section{\class{wxFileName}}\label{wxfilename}
13
14 wxFileName encapsulates a file name. This class serves two purposes: first, it
15 provides the functions to split the file names into components and to recombine
16 these components in the full file name which can then be passed to the OS file
17 functions (and \helpref{wxWidgets functions}{filefunctions} wrapping them).
18 Second, it includes the functions for working with the files itself. Note that
19 to change the file data you should use \helpref{wxFile}{wxfile} class instead.
20 wxFileName provides functions for working with the file attributes.
21
22 \wxheading{Derived from}
23
24 No base class
25
26 \wxheading{Include files}
27
28 <wx/filename.h>
29
30 \wxheading{Data structures}
31
32 Many wxFileName methods accept the path format argument which is by\rtfsp
33 {\tt wxPATH\_NATIVE} by default meaning to use the path format native for the
34 current platform.
35
36 The path format affects the operation of wxFileName functions in several ways:
37 first and foremost, it defines the path separator character to use, but it also
38 affects other things such as whether the path has the drive part or not.
39
40 \begin{verbatim}
41 enum wxPathFormat
42 {
43 wxPATH_NATIVE = 0, // the path format for the current platform
44 wxPATH_UNIX,
45 wxPATH_BEOS = wxPATH_UNIX,
46 wxPATH_MAC,
47 wxPATH_DOS,
48 wxPATH_WIN = wxPATH_DOS,
49 wxPATH_OS2 = wxPATH_DOS,
50 wxPATH_VMS,
51
52 wxPATH_MAX // Not a valid value for specifying path format
53 }
54 \end{verbatim}
55
56 \latexignore{\rtfignore{\wxheading{Function groups}}}
57
58
59 \membersection{File name format}\label{filenameformat}
60
61 wxFileName currently supports the file names in the Unix, DOS/Windows, Mac OS
62 and VMS formats. Although these formats are quite different, wxFileName tries
63 to treat them all in the same generic way. It supposes that all file names
64 consist of the following parts: the volume (also known as drive under Windows
65 or device under VMS), the path which is a sequence of directory names separated
66 by the \helpref{path separators}{wxfilenamegetpathseparators} and the full
67 filename itself which, in turn, is composed from the base file name and the
68 extension. All of the individual components of the file name may be empty and,
69 for example, the volume name is always empty under Unix, but if they are all
70 empty simultaneously, the filename object is considered to be in an invalid
71 state and \helpref{IsOk}{wxfilenameisok} returns {\tt false} for it.
72
73 File names can be case-sensitive or not, the function\rtfsp
74 \helpref{IsCaseSensitive}{wxfilenameiscasesensitive} allows to determine this.
75
76 The rules for determining whether the file name is absolute or relative also
77 depend on the file name format and the only portable way to answer this
78 question is to use \helpref{IsAbsolute}{wxfilenameisabsolute} or\rtfsp
79 \helpref{IsRelative}{wxfilenameisrelative} method. Note that on Windows, "X:"
80 refers to the current working directory on drive X. Therefore, a wxFileName
81 instance constructed from for example "X:dir/file.ext" treats the portion
82 beyond drive separator as being relative to that directory.
83
84 To ensure that the filename is absolute, you may use\rtfsp
85 \helpref{MakeAbsolute}{wxfilenamemakeabsolute}. There is also an inverse
86 function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto} which undoes
87 what \helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize} does.
88
89 Other functions returning information about the file format provided by this
90 class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp
91 \helpref{IsPathSeparator}{wxfilenameispathseparator}.
92
93
94 \membersection{File name construction}\label{filenameconstruction}
95
96 TODO.
97
98
99 \membersection{File tests}\label{filetests}
100
101 Before doing other tests, you should use \helpref{IsOk}{wxfilenameisok} to
102 verify that the filename is well defined. If it is,\rtfsp
103 \helpref{FileExists}{wxfilenamefileexists} can be used to test whether a file
104 with such name exists and \helpref{DirExists}{wxfilenamedirexists} can be used
105 to test for directory existence.
106
107 File names should be compared using \helpref{SameAs}{wxfilenamesameas} method
108 or \helpref{$==$}{wxfilenameoperatorequal}.
109
110
111 \membersection{File name components}\label{filenamecomponents}
112
113 These functions allow to examine and modify the individual directories of the
114 path:
115
116 \helpref{AppendDir}{wxfilenameappenddir}\\
117 \helpref{InsertDir}{wxfilenameinsertdir}\\
118 \helpref{GetDirCount}{wxfilenamegetdircount}
119 \helpref{PrependDir}{wxfilenameprependdir}\\
120 \helpref{RemoveDir}{wxfilenameremovedir}\\
121 \helpref{RemoveLastDir}{wxfilenameremovelastdir}
122
123 To change the components of the file name individually you can use the
124 following functions:
125
126 \helpref{GetExt}{wxfilenamegetext}\\
127 \helpref{GetName}{wxfilenamegetname}\\
128 \helpref{GetVolume}{wxfilenamegetvolume}\\
129 \helpref{HasExt}{wxfilenamehasext}\\
130 \helpref{HasName}{wxfilenamehasname}\\
131 \helpref{HasVolume}{wxfilenamehasvolume}\\
132 \helpref{SetExt}{wxfilenamesetext}\\
133 \helpref{ClearExt}{wxfilenameclearext}\\
134 \helpref{SetEmptyExt}{wxfilenamesetemptyext}\\
135 \helpref{SetName}{wxfilenamesetname}\\
136 \helpref{SetVolume}{wxfilenamesetvolume}\\
137
138
139 \membersection{Operations}\label{filenameoperations}
140
141 These methods allow to work with the file creation, access and modification
142 times. Note that not all filesystems under all platforms implement these times
143 in the same way. For example, the access time under Windows has a resolution of
144 one day (so it is really the access date and not time). The access time may be
145 updated when the file is executed or not depending on the platform.
146
147 \helpref{GetModificationTime}{wxfilenamegetmodificationtime}\\
148 \helpref{GetTimes}{wxfilenamegettimes}\\
149 \helpref{SetTimes}{wxfilenamesettimes}\\
150 \helpref{Touch}{wxfilenametouch}
151
152 Other file system operations functions are:
153
154 \helpref{Mkdir}{wxfilenamemkdir}\\
155 \helpref{Rmdir}{wxfilenamermdir}
156
157 \latexignore{\rtfignore{\wxheading{Members}}}
158
159
160 \membersection{wxFileName::wxFileName}\label{wxfilenamewxfilename}
161
162 \func{}{wxFileName}{\void}
163
164 Default constructor.
165
166 \func{}{wxFileName}{\param{const wxFileName\& }{filename}}
167
168 Copy constructor.
169
170 \func{}{wxFileName}{\param{const wxString\& }{fullpath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
171
172 Constructor taking a full filename. If it terminates with a '/', a directory path
173 is constructed (the name will be empty), otherwise a file name and
174 extension are extracted from it.
175
176 \func{}{wxFileName}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
177
178 Constructor from a directory name and a file name.
179
180 \func{}{wxFileName}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
181
182 Constructor from a directory name, base file name and extension.
183
184 \func{}{wxFileName}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
185
186 Constructor from a volume name, a directory name, base file name and extension.
187
188
189 \membersection{wxFileName::AppendDir}\label{wxfilenameappenddir}
190
191 \func{void}{AppendDir}{\param{const wxString\& }{dir}}
192
193 Appends a directory component to the path. This component should contain a
194 single directory name level, i.e. not contain any path or volume separators nor
195 should it be empty, otherwise the function does nothing (and generates an
196 assert failure in debug build).
197
198
199 \membersection{wxFileName::Assign}\label{wxfilenameassign}
200
201 \func{void}{Assign}{\param{const wxFileName\& }{filepath}}
202
203 \func{void}{Assign}{\param{const wxString\& }{fullpath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
204
205 \func{void}{Assign}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{bool }{hasExt}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
206
207 \func{void}{Assign}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
208
209 \func{void}{Assign}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
210
211 \func{void}{Assign}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
212
213 Creates the file name from various combinations of data.
214
215
216 \membersection{wxFileName::AssignCwd}\label{wxfilenameassigncwd}
217
218 \func{static void}{AssignCwd}{\param{const wxString\& }{volume = wxEmptyString}}
219
220 Makes this object refer to the current working directory on the specified
221 volume (or current volume if {\it volume} is empty).
222
223 \wxheading{See also}
224
225 \helpref{GetCwd}{wxfilenamegetcwd}
226
227
228 \membersection{wxFileName::AssignDir}\label{wxfilenameassigndir}
229
230 \func{void}{AssignDir}{\param{const wxString\& }{dir}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
231
232 Sets this file name object to the given directory name. The name and extension
233 will be empty.
234
235
236 \membersection{wxFileName::AssignHomeDir}\label{wxfilenameassignhomedir}
237
238 \func{void}{AssignHomeDir}{\void}
239
240 Sets this file name object to the home directory.
241
242
243 \membersection{wxFileName::AssignTempFileName}\label{wxfilenameassigntempfilename}
244
245 \func{void}{AssignTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}}
246
247 The function calls \helpref{CreateTempFileName}{wxfilenamecreatetempfilename} to
248 create a temporary file and sets this object to the name of the file. If a
249 temporary file couldn't be created, the object is put into the\rtfsp
250 \helpref{invalid}{wxfilenameisok} state.
251
252
253 \membersection{wxFileName::Clear}\label{wxfilenameclear}
254
255 \func{void}{Clear}{\void}
256
257 Reset all components to default, uninitialized state.
258
259
260 \membersection{wxFileName::ClearExt}\label{wxfilenameclearext}
261
262 \func{void}{SetClearExt}{\void}
263
264 Removes the extension from the file name resulting in a
265 file name with no trailing dot.
266
267 \wxheading{See also}
268
269 \helpref{SetExt}{wxfilenamesetext}
270 \helpref{SetEmptyExt}{wxfilenamesetemptyext}
271
272 \membersection{wxFileName::CreateTempFileName}\label{wxfilenamecreatetempfilename}
273
274 \func{static wxString}{CreateTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}}
275
276 Returns a temporary file name starting with the given {\it prefix}. If
277 the {\it prefix} is an absolute path, the temporary file is created in this
278 directory, otherwise it is created in the default system directory for the
279 temporary files or in the current directory.
280
281 If the function succeeds, the temporary file is actually created. If\rtfsp
282 {\it fileTemp} is not {\tt NULL}, this file will be opened using the name of
283 the temporary file. When possible, this is done in an atomic way ensuring that
284 no race condition occurs between the temporary file name generation and opening
285 it which could often lead to security compromise on the multiuser systems.
286 If {\it fileTemp} is {\tt NULL}, the file is only created, but not opened.
287
288 Under Unix, the temporary file will have read and write permissions for the
289 owner only to minimize the security problems.
290
291 \wxheading{Parameters}
292
293 \docparam{prefix}{Prefix to use for the temporary file name construction}
294
295 \docparam{fileTemp}{The file to open or {\tt NULL} to just get the name}
296
297 \wxheading{Return value}
298
299 The full temporary file name or an empty string on error.
300
301
302 \membersection{wxFileName::DirExists}\label{wxfilenamedirexists}
303
304 \constfunc{bool}{DirExists}{\void}
305
306 \func{static bool}{DirExists}{\param{const wxString\& }{dir}}
307
308 Returns {\tt true} if the directory with this name exists.
309
310
311 \membersection{wxFileName::DirName}\label{wxfilenamedirname}
312
313 \func{static wxFileName}{DirName}{\param{const wxString\& }{dir}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
314
315 Returns the object corresponding to the directory with the given name.
316 The {\it dir} parameter may have trailing path separator or not.
317
318
319
320 \membersection{wxFileName::FileExists}\label{wxfilenamefileexists}
321
322 \constfunc{bool}{FileExists}{\void}
323
324 \func{static bool}{FileExists}{\param{const wxString\& }{file}}
325
326 Returns {\tt true} if the file with this name exists.
327
328 \wxheading{See also}
329
330 \helpref{DirExists}{wxfilenamedirexists}
331
332
333
334 \membersection{wxFileName::FileName}\label{wxfilenamefilename}
335
336 \func{static wxFileName}{FileName}{\param{const wxString\& }{file}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
337
338 Returns the file name object corresponding to the given {\it file}. This
339 function exists mainly for symmetry with \helpref{DirName}{wxfilenamedirname}.
340
341
342
343 \membersection{wxFileName::GetCwd}\label{wxfilenamegetcwd}
344
345 \func{static wxString}{GetCwd}{\param{const wxString\& }{volume = ""}}
346
347 Retrieves the value of the current working directory on the specified volume. If
348 the volume is empty, the program's current working directory is returned for the
349 current volume.
350
351 \wxheading{Return value}
352
353 The string containing the current working directory or an empty string on
354 error.
355
356 \wxheading{See also}
357
358 \helpref{AssignCwd}{wxfilenameassigncwd}
359
360
361 \membersection{wxFileName::GetDirCount}\label{wxfilenamegetdircount}
362
363 \constfunc{size\_t}{GetDirCount}{\void}
364
365 Returns the number of directories in the file name.
366
367
368 \membersection{wxFileName::GetDirs}\label{wxfilenamegetdirs}
369
370 \constfunc{const wxArrayString\&}{GetDirs}{\void}
371
372 Returns the directories in string array form.
373
374
375 \membersection{wxFileName::GetExt}\label{wxfilenamegetext}
376
377 \constfunc{wxString}{GetExt}{\void}
378
379 Returns the file name extension.
380
381
382 \membersection{wxFileName::GetForbiddenChars}\label{wxfilenamegetforbiddenchars}
383
384 \func{static wxString}{GetForbiddenChars}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
385
386 Returns the characters that can't be used in filenames and directory names for the specified format.
387
388
389 \membersection{wxFileName::GetFormat}\label{wxfilenamegetformat}
390
391 \func{static wxPathFormat}{GetFormat}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
392
393 Returns the canonical path format for this platform.
394
395
396 \membersection{wxFileName::GetFullName}\label{wxfilenamegetfullname}
397
398 \constfunc{wxString}{GetFullName}{\void}
399
400 Returns the full name (including extension but excluding directories).
401
402
403 \membersection{wxFileName::GetFullPath}\label{wxfilenamegetfullpath}
404
405 \constfunc{wxString}{GetFullPath}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
406
407 Returns the full path with name and extension.
408
409
410 \membersection{wxFileName::GetHomeDir}\label{wxfilenamegethomedir}
411
412 \func{static wxString}{GetHomeDir}{\void}
413
414 Returns the home directory.
415
416
417 \membersection{wxFileName::GetLongPath}\label{wxfilenamegetlongpath}
418
419 \constfunc{wxString}{GetLongPath}{\void}
420
421 Return the long form of the path (returns identity on non-Windows platforms)
422
423
424 \membersection{wxFileName::GetModificationTime}\label{wxfilenamegetmodificationtime}
425
426 \constfunc{wxDateTime}{GetModificationTime}{\void}
427
428 Returns the last time the file was last modified.
429
430
431 \membersection{wxFileName::GetName}\label{wxfilenamegetname}
432
433 \constfunc{wxString}{GetName}{\void}
434
435 Returns the name part of the filename (without extension).
436
437 \wxheading{See also}
438
439 \helpref{GetFullName}{wxfilenamegetfullname}
440
441
442
443 \membersection{wxFileName::GetPath}\label{wxfilenamegetpath}
444
445 \constfunc{wxString}{GetPath}{\param{int }{flags = {\tt wxPATH\_GET\_VOLUME}}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
446
447 Returns the path part of the filename (without the name or extension). The
448 possible flags values are:
449
450 \twocolwidtha{5cm}
451 \begin{twocollist}\itemsep=0pt
452 \twocolitem{{\bf wxPATH\_GET\_VOLUME}}{Return the path with the volume (does
453 nothing for the filename formats without volumes), otherwise the path without
454 volume part is returned.}
455 \twocolitem{{\bf wxPATH\_GET\_SEPARATOR}}{Return the path with the trailing
456 separator, if this flag is not given there will be no separator at the end of
457 the path.}
458 \end{twocollist}
459
460
461 \membersection{wxFileName::GetPathSeparator}\label{wxfilenamegetpathseparator}
462
463 \func{static wxChar}{GetPathSeparator}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
464
465 Returns the usually used path separator for this format. For all formats but
466 {\tt wxPATH\_DOS} there is only one path separator anyhow, but for DOS there
467 are two of them and the native one, i.e. the backslash is returned by this
468 method.
469
470 \wxheading{See also}
471
472 \helpref{GetPathSeparators}{wxfilenamegetpathseparators}
473
474
475 \membersection{wxFileName::GetPathSeparators}\label{wxfilenamegetpathseparators}
476
477 \func{static wxString}{GetPathSeparators}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
478
479 Returns the string containing all the path separators for this format. For all
480 formats but {\tt wxPATH\_DOS} this string contains only one character but for
481 DOS and Windows both {\tt '/'} and {\tt '\textbackslash'} may be used as
482 separators.
483
484 \wxheading{See also}
485
486 \helpref{GetPathSeparator}{wxfilenamegetpathseparator}
487
488
489 \membersection{wxFileName::GetPathTerminators}\label{wxfilenamegetpathterminators}
490
491 \func{static wxString}{GetPathTerminators}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
492
493 Returns the string of characters which may terminate the path part. This is the
494 same as \helpref{GetPathSeparators}{wxfilenamegetpathseparators} except for VMS
495 path format where $]$ is used at the end of the path part.
496
497
498 \membersection{wxFileName::GetShortPath}\label{wxfilenamegetshortpath}
499
500 \constfunc{wxString}{GetShortPath}{\void}
501
502 Return the short form of the path (returns identity on non-Windows platforms).
503
504
505 \membersection{wxFileName::GetTimes}\label{wxfilenamegettimes}
506
507 \constfunc{bool}{GetTimes}{\param{wxDateTime* }{dtAccess}, \param{wxDateTime* }{dtMod}, \param{wxDateTime* }{dtCreate}}
508
509 Returns the last access, last modification and creation times. The last access
510 time is updated whenever the file is read or written (or executed in the case
511 of Windows), last modification time is only changed when the file is written
512 to. Finally, the creation time is indeed the time when the file was created
513 under Windows and the inode change time under Unix (as it is impossible to
514 retrieve the real file creation time there anyhow) which can also be changed
515 by many operations after the file creation.
516
517 Any of the pointers may be {\tt NULL} if the corresponding time is not
518 needed.
519
520 \wxheading{Return value}
521
522 {\tt true} on success, {\tt false} if we failed to retrieve the times.
523
524
525 \membersection{wxFileName::GetVolume}\label{wxfilenamegetvolume}
526
527 \constfunc{wxString}{GetVolume}{\void}
528
529 Returns the string containing the volume for this file name, empty if it
530 doesn't have one or if the file system doesn't support volumes at all (for
531 example, Unix).
532
533
534 \membersection{wxFileName::GetVolumeSeparator}\label{wxfilenamegetvolumeseparator}
535
536 \func{static wxString}{GetVolumeSeparator}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
537
538 Returns the string separating the volume from the path for this format.
539
540
541 \membersection{wxFileName::HasExt}\label{wxfilenamehasext}
542
543 \constfunc{bool}{HasExt}{\void}
544
545 Returns {\tt true} if an extension is present.
546
547
548 \membersection{wxFileName::HasName}\label{wxfilenamehasname}
549
550 \constfunc{bool}{HasName}{\void}
551
552 Returns {\tt true} if a name is present.
553
554
555 \membersection{wxFileName::HasVolume}\label{wxfilenamehasvolume}
556
557 \constfunc{bool}{HasVolume}{\void}
558
559 Returns {\tt true} if a volume specifier is present.
560
561
562 \membersection{wxFileName::InsertDir}\label{wxfilenameinsertdir}
563
564 \func{void}{InsertDir}{\param{size\_t }{before}, \param{const wxString\& }{dir}}
565
566 Inserts a directory component before the zero-based position in the directory
567 list. Please see \helpref{AppendDir}{wxfilenameappenddir} for important notes.
568
569
570 \membersection{wxFileName::IsAbsolute}\label{wxfilenameisabsolute}
571
572 \func{bool}{IsAbsolute}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
573
574 Returns {\tt true} if this filename is absolute.
575
576
577 \membersection{wxFileName::IsCaseSensitive}\label{wxfilenameiscasesensitive}
578
579 \func{static bool}{IsCaseSensitive}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
580
581 Returns {\tt true} if the file names of this type are case-sensitive.
582
583
584 \membersection{wxFileName::IsOk}\label{wxfilenameisok}
585
586 \constfunc{bool}{IsOk}{\void}
587
588 Returns {\tt true} if the filename is valid, {\tt false} if it is not
589 initialized yet. The assignment functions and
590 \helpref{Clear}{wxfilenameclear} may reset the object to the uninitialized,
591 invalid state (the former only do it on failure).
592
593
594 \membersection{wxFileName::IsPathSeparator}\label{wxfilenameispathseparator}
595
596 \func{static bool}{IsPathSeparator}{\param{wxChar }{ch}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
597
598 Returns {\tt true} if the char is a path separator for this format.
599
600
601 \membersection{wxFileName::IsRelative}\label{wxfilenameisrelative}
602
603 \func{bool}{IsRelative}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
604
605 Returns {\tt true} if this filename is not absolute.
606
607
608 \membersection{wxFileName::IsDir}\label{wxfilenameisdir}
609
610 \constfunc{bool}{IsDir}{\void}
611
612 Returns {\tt true} if this object represents a directory, {\tt false} otherwise
613 (i.e. if it is a file). Note that this method doesn't test whether the
614 directory or file really exists, you should use
615 \helpref{DirExists}{wxfilenamedirexists} or
616 \helpref{FileExists}{wxfilenamefileexists} for this.
617
618 \membersection{wxFileName::MacFindDefaultTypeAndCreator}\label{wxfilenamemacfinddefaulttypeandcreator}
619
620 \func{static bool}{MacFindDefaultTypeAndCreator}{\param{const wxString\& }{ext}, \param{wxUint32* }{type}, \param{wxUint32* }{creator}}
621
622 On Mac OS, gets the common type and creator for the given extension.
623
624 \membersection{wxFileName::MacRegisterDefaultTypeAndCreator}\label{wxfilenamemacregisterdefaulttypeandcreator}
625
626 \func{static void}{MacRegisterDefaultTypeAndCreator}{\param{const wxString\& }{ext}, \param{wxUint32 }{type}, \param{wxUint32 }{creator}}
627
628 On Mac OS, registers application defined extensions and their default type and creator.
629
630 \membersection{wxFileName::MacSetDefaultTypeAndCreator}\label{wxfilenamemacsetdefaulttypeandcreator}
631
632 \func{bool}{MacSetDefaultTypeAndCreator}{\void}
633
634 On Mac OS, looks up the appropriate type and creator from the registration and then sets it.
635
636 \membersection{wxFileName::MakeAbsolute}\label{wxfilenamemakeabsolute}
637
638 \func{bool}{MakeAbsolute}{\param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
639
640 Make the file name absolute. This is a shortcut for
641 {\tt \helpref{Normalize}{wxfilenamenormalize}(wxPATH\_NORM\_DOTS | wxPATH\_NORM\_ABSOLUTE | wxPATH\_NORM\_TILDE, cwd, format)}.
642
643 \wxheading{See also}
644
645 \helpref{MakeRelativeTo}{wxfilenamemakerelativeto},
646 \helpref{Normalize}{wxfilenamenormalize},
647 \helpref{IsAbsolute}{wxfilenameisabsolute}
648
649
650 \membersection{wxFileName::MakeRelativeTo}\label{wxfilenamemakerelativeto}
651
652 \func{bool}{MakeRelativeTo}{\param{const wxString\& }{pathBase = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
653
654 This function tries to put this file name in a form relative to {\it pathBase}.
655 In other words, it returns the file name which should be used to access this
656 file if the current directory were {\it pathBase}.
657
658 \docparam{pathBase}{the directory to use as root, current directory is used by
659 default}
660
661 \docparam{format}{the file name format, native by default}
662
663 \wxheading{Return value}
664
665 {\tt true} if the file name has been changed, {\tt false} if we failed to do
666 anything with it (currently this only happens if the file name is on a volume
667 different from the volume specified by {\it pathBase}).
668
669 \wxheading{See also}
670
671 \helpref{Normalize}{wxfilenamenormalize}
672
673
674 \membersection{wxFileName::Mkdir}\label{wxfilenamemkdir}
675
676 \func{bool}{Mkdir}{\param{int }{perm = 0777}, \param{int }{flags = $0$}}
677
678 \func{static bool}{Mkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}, \param{int }{flags = $0$}}
679
680 \docparam{dir}{the directory to create}
681
682 \docparam{parm}{the permissions for the newly created directory}
683
684 \docparam{flags}{if the flags contain {\tt wxPATH\_MKDIR\_FULL} flag,
685 try to create each directory in the path and also don't return an error
686 if the target directory already exists.}
687
688 \wxheading{Return value}
689
690 Returns {\tt true} if the directory was successfully created, {\tt false}
691 otherwise.
692
693
694 \membersection{wxFileName::Normalize}\label{wxfilenamenormalize}
695
696 \func{bool}{Normalize}{\param{int }{flags = wxPATH\_NORM\_ALL}, \param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
697
698 Normalize the path. With the default flags value, the path will be
699 made absolute, without any ".." and "." and all environment
700 variables will be expanded in it.
701
702 \docparam{flags}{The kind of normalization to do with the file name. It can be
703 any or-combination of the following constants:
704
705 \begin{twocollist}
706 \twocolitem{{\bf wxPATH\_NORM\_ENV\_VARS}}{replace env vars with their values}
707 \twocolitem{{\bf wxPATH\_NORM\_DOTS}}{squeeze all .. and . and prepend cwd}
708 \twocolitem{{\bf wxPATH\_NORM\_TILDE}}{Unix only: replace ~ and ~user}
709 \twocolitem{{\bf wxPATH\_NORM\_CASE}}{if filesystem is case insensitive, transform to lower case}
710 \twocolitem{{\bf wxPATH\_NORM\_ABSOLUTE}}{make the path absolute}
711 \twocolitem{{\bf wxPATH\_NORM\_LONG}}{make the path the long form}
712 \twocolitem{{\bf wxPATH\_NORM\_SHORTCUT}}{resolve if it is a shortcut (Windows only)}
713 \twocolitem{{\bf wxPATH\_NORM\_ALL}}{all of previous flags except \texttt{wxPATH\_NORM\_CASE}}
714 \end{twocollist}
715 }%
716
717 \docparam{cwd}{If not empty, this directory will be used instead of current
718 working directory in normalization.}
719
720 \docparam{format}{The file name format, native by default.}
721
722
723 \membersection{wxFileName::PrependDir}\label{wxfilenameprependdir}
724
725 \func{void}{PrependDir}{\param{const wxString\& }{dir}}
726
727 Prepends a directory to the file path. Please see
728 \helpref{AppendDir}{wxfilenameappenddir} for important notes.
729
730
731
732 \membersection{wxFileName::RemoveDir}\label{wxfilenameremovedir}
733
734 \func{void}{RemoveDir}{\param{size\_t }{pos}}
735
736 Removes the specified directory component from the path.
737
738 \wxheading{See also}
739
740 \helpref{GetDirCount}{wxfilenamegetdircount}
741
742
743 \membersection{wxFileName::RemoveLastDir}\label{wxfilenameremovelastdir}
744
745 \func{void}{RemoveLastDir}{\void}
746
747 Removes last directory component from the path.
748
749
750 \membersection{wxFileName::Rmdir}\label{wxfilenamermdir}
751
752 \func{bool}{Rmdir}{\void}
753
754 \func{static bool}{Rmdir}{\param{const wxString\& }{dir}}
755
756 Deletes the specified directory from the file system.
757
758
759 \membersection{wxFileName::SameAs}\label{wxfilenamesameas}
760
761 \constfunc{bool}{SameAs}{\param{const wxFileName\& }{filepath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
762
763 Compares the filename using the rules of this platform.
764
765
766 \membersection{wxFileName::SetCwd}\label{wxfilenamesetcwd}
767
768 \func{bool}{SetCwd}{\void}
769
770 \func{static bool}{SetCwd}{\param{const wxString\& }{cwd}}
771
772 Changes the current working directory.
773
774
775 \membersection{wxFileName::SetExt}\label{wxfilenamesetext}
776
777 \func{void}{SetExt}{\param{const wxString\& }{ext}}
778
779 Sets the extension of the file name. Setting an empty string
780 as the extension will remove the extension resulting in a file
781 name without a trailing dot, unlike a call to
782 \helpref{SetEmptyExt}{wxfilenamesetemptyext}.
783
784 \wxheading{See also}
785
786 \helpref{SetEmptyExt}{wxfilenamesetemptyext}
787 \helpref{ClearExt}{wxfilenameclearext}
788
789 \membersection{wxFileName::SetEmptyExt}\label{wxfilenamesetemptyext}
790
791 \func{void}{SetEmptyExt}{\void}
792
793 Sets the extension of the file name to be an empty extension.
794 This is different from having no extension at all as the file
795 name will have a trailing dot after a call to this method.
796
797 \wxheading{See also}
798
799 \helpref{SetExt}{wxfilenamesetext}
800 \helpref{ClearExt}{wxfilenameclearext}
801
802 \membersection{wxFileName::SetFullName}\label{wxfilenamesetfullname}
803
804 \func{void}{SetFullName}{\param{const wxString\& }{fullname}}
805
806 The full name is the file name and extension (but without the path).
807
808
809 \membersection{wxFileName::SetName}\label{wxfilenamesetname}
810
811 \func{void}{SetName}{\param{const wxString\& }{name}}
812
813 Sets the name part (without extension).
814
815 \wxheading{See also}
816
817 \helpref{SetFullName}{wxfilenamesetfullname}
818
819
820 \membersection{wxFileName::SetTimes}\label{wxfilenamesettimes}
821
822 \func{bool}{SetTimes}{\param{const wxDateTime* }{dtAccess}, \param{const wxDateTime* }{dtMod}, \param{const wxDateTime* }{dtCreate}}
823
824 Sets the file creation and last access/modification times (any of the pointers may be NULL).
825
826
827 \membersection{wxFileName::SetVolume}\label{wxfilenamesetvolume}
828
829 \func{void}{SetVolume}{\param{const wxString\& }{volume}}
830
831 Sets the volume specifier.
832
833
834 \membersection{wxFileName::SplitPath}\label{wxfilenamesplitpath}
835
836 \func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{bool }{*hasExt = \texttt{NULL}}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
837
838 \func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
839
840 \func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
841
842 This function splits a full file name into components: the volume (with the
843 first version) path (including the volume in the second version), the base name
844 and the extension. Any of the output parameters ({\it volume}, {\it path},
845 {\it name} or {\it ext}) may be {\tt NULL} if you are not interested in the
846 value of a particular component. Also, {\it fullpath} may be empty on entry.
847
848 On return, {\it path} contains the file path (without the trailing separator),
849 {\it name} contains the file name and {\it ext} contains the file extension
850 without leading dot. All three of them may be empty if the corresponding
851 component is. The old contents of the strings pointed to by these parameters
852 will be overwritten in any case (if the pointers are not {\tt NULL}).
853
854 Note that for a filename ``foo.'' the extension is present, as indicated by the
855 trailing dot, but empty. If you need to cope with such cases, you should use
856 \arg{hasExt} instead of relying on testing whether \arg{ext} is empty or not.
857
858
859 \membersection{wxFileName::SplitVolume}\label{wxfilenamesplitvolume}
860
861 \func{static void}{SplitVolume}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
862
863 Splits the given \arg{fullpath} into the volume part (which may be empty) and
864 the pure path part, not containing any volume.
865
866 \wxheading{See also}
867
868 \helpref{SplitPath}{wxfilenamesplitpath}
869
870
871 \membersection{wxFileName::Touch}\label{wxfilenametouch}
872
873 \func{bool}{Touch}{\void}
874
875 Sets the access and modification times to the current moment.
876
877
878 \membersection{wxFileName::operator=}\label{wxfilenameoperatorassign}
879
880 \func{wxFileName\& operator}{operator=}{\param{const wxFileName\& }{filename}}
881
882 \func{wxFileName\& operator}{operator=}{\param{const wxString\& }{filename}}
883
884 Assigns the new value to this filename object.
885
886
887 \membersection{wxFileName::operator==}\label{wxfilenameoperatorequal}
888
889 \constfunc{bool operator}{operator==}{\param{const wxFileName\& }{filename}}
890
891 \constfunc{bool operator}{operator==}{\param{const wxString\& }{filename}}
892
893 Returns {\tt true} if the filenames are equal. The string {\it filenames} is
894 interpreted as a path in the native filename format.
895
896
897 \membersection{wxFileName::operator!=}\label{wxfilenameoperatornotequal}
898
899 \constfunc{bool operator}{operator!=}{\param{const wxFileName\& }{filename}}
900
901 \constfunc{bool operator}{operator!=}{\param{const wxString\& }{filename}}
902
903 Returns {\tt true} if the filenames are different. The string {\it filenames}
904 is interpreted as a path in the native filename format.
905