]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/filename.tex
Patch #581167
[wxWidgets.git] / docs / latex / wx / filename.tex
index a713b4d068cb6f7b84274b6b1efdb5d68f034a01..4f656c7403284c8aedd1fddfb06b7a2c01fc0f7f 100644 (file)
@@ -71,7 +71,7 @@ enum wxPathNormalize
 
 wxFileName currently supports the file names in the Unix, DOS/Windows, Mac OS
 and VMS formats. Although these formats are quite different, wxFileName tries
-to treat them all in the sam generic way. It supposes that all file names
+to treat them all in the same generic way. It supposes that all file names
 consist of the following parts: the volume (also known as drive under Windows
 or device under VMS), the path which is a sequence of directory names separated
 by the \helpref{path separators}{wxfilenamegetpathseparators} and the full
@@ -94,8 +94,7 @@ does.
 
 Other functions returning information about the file format provided by this
 class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp
-\helpref{IsPathSeparator}{wxfilenameispathseparator} and\rtfsp
-\helpref{IsWild}{wxfilenameiswild}.
+\helpref{IsPathSeparator}{wxfilenameispathseparator}.
 
 \helpref{IsRelative}{wxfilenameisrelative}
 
@@ -140,7 +139,10 @@ following functions:
 \membersection{Operations}
 
 These methods allow to work with the file creation, access and modification
-times:
+times. Note that not all filesystems under all platforms implement these times
+in the same way. For example, the access time under Windows has a resolution of
+one day (so it is really the access date and not time). The access time may be
+updated when the file is executed or not depending on the platform.
 
 \helpref{GetModificationTime}{wxfilenamegetmodificationtime}\\
 \helpref{GetTimes}{wxfilenamegettimes}\\
@@ -167,7 +169,7 @@ Copy constructor.
 \func{}{wxFileName}{\param{const wxString\& }{fullpath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
 
 From a full filename: if it terminates with a '/', a directory path
-is contructed (the name will be empty), otherwise a file name and
+is constructed (the name will be empty), otherwise a file name and
 extension are extracted from it
 
 \func{}{wxFileName}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
@@ -226,7 +228,7 @@ Set this file name object to the home directory.
 
 \membersection{wxFileName::AssignTempFileName}\label{wxfilenameassigntempfilename}
 
-\func{void}{AssignTempFileName}{\param{const wxString\& }{prefix}}
+\func{void}{AssignTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}}
 
 The function calls \helpref{CreateTempFileName}{wxfilenamecreatetempfilename} to
 create a temporary file and sets this object to the name of the file. If a
@@ -241,16 +243,28 @@ Reset all components to default, uninitialized state.
 
 \membersection{wxFileName::CreateTempFileName}\label{wxfilenamecreatetempfilename}
 
-\func{static wxString}{CreateTempFileName}{\param{const wxString\& }{prefix}}
+\func{static wxString}{CreateTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}}
 
 Returns a temporary file name starting with the given {\it prefix}. If
 the {\it prefix} is an absolute path, the temporary file is created in this
 directory, otherwise it is created in the default system directory for the
 temporary files or in the current directory.
 
-If the function succeeds, the temporary file is actually created (but not
-opened) as well. Under Unix, it will have read and write permissions for the
-owner only.
+If the function succeeds, the temporary file is actually created. If\rtfsp
+{\it fileTemp} is not {\tt NULL}, this file will be opened using the name of
+the temporary file. When possible, this is done in an atomic way ensuring that
+no race condition occurs between the temporary file name generation and opening
+it which could often lead to security compromise on the multiuser systems.
+If {\it fileTemp} is {\tt NULL}, the file is only created, but not opened.
+
+Under Unix, the temporary file will have read and write permissions for the
+owner only to minimize the security problems.
+
+\wxheading{Parameters}
+
+\docparam{prefix}{Prefix to use for the temporary file name construction}
+
+\docparam{fileTemp}{The file to open or {\tt NULL} to just get the name}
 
 \wxheading{Return value}
 
@@ -360,17 +374,45 @@ convenience wrapper: get just the last mod time of the file
 
 \membersection{wxFileName::GetPath}\label{wxfilenamegetpath}
 
-\constfunc{wxString}{GetPath}{\param{bool }{add\_separator = FALSE}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\constfunc{wxString}{GetPath}{\param{int }{flags = $0$}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+
+Return the path part of the filename (without the name nor extension). The
+possible flags values are:
 
-Construct path only - possibly with the trailing separator
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxPATH\_GET\_VOLUME}}{Return the path with the volume (does
+nothing for the filename formats without volumes)}
+\twocolitem{{\bf wxPATH\_GET\_SEPARATOR}}{Return the path with the trailing
+separator, if this flag is not given there will be no separator at the end of
+the path.}
+\end{twocollist}
 
+\membersection{wxFileName::GetPathSeparator}\label{wxfilenamegetpathseparator}
+
+\func{wxChar}{GetPathSeparator}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
+
+Return the usually used path separator for this format. For all formats but 
+{\tt wxPATH\_DOS} there is only one path separator anyhow, but for DOS there
+are two of them and the native one, i.e. the backslash is returned by this
+method.
+
+\wxheading{See also}
+
+\helpref{GetPathSeparators}{wxfilenamegetpathseparators}
 
 \membersection{wxFileName::GetPathSeparators}\label{wxfilenamegetpathseparators}
 
 \func{wxString}{GetPathSeparators}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
 
-get the string of path separators for this format
+Get the string containing all the path separators for this format. For all
+formats but {\tt wxPATH\_DOS} this string contains only one character but for
+DOS and Windows both {\tt '/'} and {\tt '\textbackslash'} may be used as
+separators.
+
+\wxheading{See also}
 
+\helpref{GetPathSeparator}{wxfilenamegetpathseparator}
 
 \membersection{wxFileName::GetPathWithSep}\label{wxfilenamegetpathwithsep}
 
@@ -388,16 +430,30 @@ Return the short form of the path (returns identity on non-Windows platforms)
 
 \membersection{wxFileName::GetTimes}\label{wxfilenamegettimes}
 
-\constfunc{bool}{GetTimes}{\param{wxDateTime* }{dtAccess}, \param{wxDateTime* }{dtMod}, \param{wxDateTime* }{dtChange}}
+\constfunc{bool}{GetTimes}{\param{wxDateTime* }{dtAccess}, \param{wxDateTime* }{dtMod}, \param{wxDateTime* }{dtCreate}}
 
-return the last access, last modification and last change times
-(any of the pointers may be NULL)
+Return the last access, last modification and creation times. The last access
+time is updated whenever the file is read or written (or executed in the case
+of Windows), last modification time is only changed when the file is written
+to. Finally, the creation time is indeed the time when the file was created
+under Windows and the inode change time under Unix (as it is impossible to
+retrieve the real file creation time there anyhow) which can also be changed
+by many operations after the file creation.
 
+Aany of the pointers may be {\tt NULL} if the corresponding time is not
+needed.
+
+\wxheading{Return value}
+
+{\tt TRUE} on success, {\tt FALSE} if we failed to retrieve the times.
 
 \membersection{wxFileName::GetVolume}\label{wxfilenamegetvolume}
 
 \constfunc{wxString}{GetVolume}{\void}
 
+Returns the string containing the volume for this file name, mepty if it
+doesn't have one or if the file system doesn't support volumes at all (for
+example, Unix).
 
 \membersection{wxFileName::GetVolumeSeparator}\label{wxfilenamegetvolumeseparator}
 
@@ -462,11 +518,15 @@ Returns {\tt TRUE} if the char is a path separator for this format.
 
 Returns {\tt TRUE} if this filename is not absolute.
 
-\membersection{wxFileName::IsWild}\label{wxfilenameiswild}
+\membersection{wxFileName::IsDir}\label{wxfilenameisdir}
 
-\func{bool}{IsWild}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\constfunc{bool}{IsDir}{\void}
 
-FIXME: what exactly does this do?
+Returns {\tt TRUE} if this object represents a directory, {\tt FALSE} otherwise
+(i.e. if it is a file). Note that this method doesn't test whether the
+directory or file really exists, you should use 
+\helpref{DirExists}{wxfilenamedirexists} or 
+\helpref{FileExists}{wxfilenamefileexists} for this.
 
 \membersection{wxFileName::MakeRelativeTo}\label{wxfilenamemakerelativeto}
 
@@ -493,15 +553,17 @@ different from the volume specified by {\it pathBase}).
 
 \membersection{wxFileName::Mkdir}\label{wxfilenamemkdir}
 
-\func{bool}{Mkdir}{\param{int }{perm = 0777}, \param{bool }{full = FALSE}}
+\func{bool}{Mkdir}{\param{int }{perm = 0777}, \param{int }{flags = $0$}}
 
-\func{static bool}{Mkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}, \param{bool }{full = FALSE}}
+\func{static bool}{Mkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}, \param{int }{flags = $0$}}
 
 \docparam{dir}{the directory to create}
 
 \docparam{parm}{the permissions for the newly created directory}
 
-\docparam{full}{if {\tt TRUE}, will try to make each directory in the path}
+\docparam{flags}{if the flags contain {\tt wxPATH\_MKDIR\_FULL} flag,
+try to create each directory in the path and also don't return an error
+if the target directory already exists.}
 
 \wxheading{Return value}
 
@@ -510,7 +572,7 @@ otherwise.
 
 \membersection{wxFileName::Normalize}\label{wxfilenamenormalize}
 
-\func{bool}{Normalize}{\param{wxPathNormalize }{flags = wxPATH\_NORM\_ALL}, \param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\func{bool}{Normalize}{\param{int }{flags = wxPATH\_NORM\_ALL}, \param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
 
 operations on the path
 normalize the path: with the default flags value, the path will be
@@ -572,7 +634,7 @@ full name is the file name + extension (but without the path)
 
 \membersection{wxFileName::SetTimes}\label{wxfilenamesettimes}
 
-\func{bool}{SetTimes}{\param{const wxDateTime* }{dtCreate}, \param{const wxDateTime* }{dtAccess}, \param{const wxDateTime* }{dtMod}}
+\func{bool}{SetTimes}{\param{const wxDateTime* }{dtAccess}, \param{const wxDateTime* }{dtMod}, \param{const wxDateTime* }{dtCreate}}
 
 set the file creation and last access/mod times
 (any of the pointers may be NULL)
@@ -585,12 +647,21 @@ set the file creation and last access/mod times
 
 \membersection{wxFileName::SplitPath}\label{wxfilenamesplitpath}
 
-\func{void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\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}}
+
+\func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
 
-\func{void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+This function splits a full file name into components: the volume (with the
+first version) path (including the volume in the second version), the base name
+and the extension. Any of the output parameters ({\it volume}, {\it path}, 
+{\it name} or {\it ext}) may be {\tt NULL} if you are not interested in the
+value of a particular component. Also, {\it fullpath} may be empty on entry.
 
-split a fullpath into the volume, path, (base) name and extension
-(all of the pointers can be NULL)
+On return, {\it path} contains the file path (without the trailing separator), 
+{\it name} contains the file name and {\it ext} contains the file extension
+without leading dot. All three of them may be empty if the corresponding
+component is. The old contents of the strings pointed to by these parameters
+will be overwritten in any case (if the pointers are not {\tt NULL}).
 
 \membersection{wxFileName::Touch}\label{wxfilenametouch}