]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/filename.tex
minor corrections and note about Unicode (patch 1555691)
[wxWidgets.git] / docs / latex / wx / filename.tex
index feae4b95146846f50781e5a43eb43fdaf48a6d96..311783e72869de24cb33b45ebd9d5fc7a634b97f 100644 (file)
@@ -73,20 +73,23 @@ state and \helpref{IsOk}{wxfilenameisok} returns {\tt false} for it.
 File names can be case-sensitive or not, the function\rtfsp
 \helpref{IsCaseSensitive}{wxfilenameiscasesensitive} allows to determine this.
 
-The rules for determining if the file name is absolute or relative also depends
-on the file name format and the only portable way to answer to this question is
-to use \helpref{IsAbsolute}{wxfilenameisabsolute} method. To ensure that the
-filename is absolute you may use \helpref{MakeAbsolute}{wxfilenamemakeabsolute}.
-There is also an inverse function 
-\helpref{MakeRelativeTo}{wxfilenamemakerelativeto} which undoes what
-\helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize} does.
+The rules for determining whether the file name is absolute or relative also
+depend on the file name format and the only portable way to answer this
+question is to use \helpref{IsAbsolute}{wxfilenameisabsolute} or\rtfsp
+\helpref{IsRelative}{wxfilenameisrelative} method. Note that on Windows, "X:"
+refers to the current working directory on drive X. Therefore, a wxFileName
+instance constructed from for example "X:dir/file.ext" treats the portion 
+beyond drive separator as being relative to that directory.
+
+To ensure that the filename is absolute, you may use\rtfsp
+\helpref{MakeAbsolute}{wxfilenamemakeabsolute}. There is also an inverse
+function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto} which undoes
+what \helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize} does.
 
 Other functions returning information about the file format provided by this
 class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp
 \helpref{IsPathSeparator}{wxfilenameispathseparator}.
 
-\helpref{IsRelative}{wxfilenameisrelative}
-
 
 \membersection{File name construction}\label{filenameconstruction}
 
@@ -95,11 +98,11 @@ TODO.
 
 \membersection{File tests}\label{filetests}
 
-Before doing the other tests you should use \helpref{IsOk}{wxfilenameisok} to
-verify that the filename is well defined. If it is, 
-\helpref{FileExists}{wxfilenamefileexists} can be used to test if a file with
-such name exists and \helpref{DirExists}{wxfilenamedirexists} - if a directory
-with this name exists.
+Before doing other tests, you should use \helpref{IsOk}{wxfilenameisok} to
+verify that the filename is well defined. If it is,\rtfsp
+\helpref{FileExists}{wxfilenamefileexists} can be used to test whether a file
+with such name exists and \helpref{DirExists}{wxfilenamedirexists} can be used
+to test for directory existence.
 
 File names should be compared using \helpref{SameAs}{wxfilenamesameas} method
 or \helpref{$==$}{wxfilenameoperatorequal}.
@@ -127,6 +130,8 @@ following functions:
 \helpref{HasName}{wxfilenamehasname}\\
 \helpref{HasVolume}{wxfilenamehasvolume}\\
 \helpref{SetExt}{wxfilenamesetext}\\
+\helpref{ClearExt}{wxfilenameclearext}\\
+\helpref{SetEmptyExt}{wxfilenamesetemptyext}\\
 \helpref{SetName}{wxfilenamesetname}\\
 \helpref{SetVolume}{wxfilenamesetvolume}\\
 
@@ -252,6 +257,18 @@ temporary file couldn't be created, the object is put into the\rtfsp
 Reset all components to default, uninitialized state.
 
 
+\membersection{wxFileName::ClearExt}\label{wxfilenameclearext}
+
+\func{void}{SetClearExt}{\void}
+
+Removes the extension from the file name resulting in a 
+file name with no trailing dot.
+
+\wxheading{See also}
+
+\helpref{SetExt}{wxfilenamesetext}
+\helpref{SetEmptyExt}{wxfilenamesetemptyext}
+
 \membersection{wxFileName::CreateTempFileName}\label{wxfilenamecreatetempfilename}
 
 \func{static wxString}{CreateTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}}
@@ -328,7 +345,7 @@ function exists mainly for symmetry with \helpref{DirName}{wxfilenamedirname}.
 \func{static wxString}{GetCwd}{\param{const wxString\& }{volume = ""}}
 
 Retrieves the value of the current working directory on the specified volume. If
-the volume is empty, the programs current working directory is returned for the
+the volume is empty, the program's current working directory is returned for the
 current volume.
 
 \wxheading{Return value}
@@ -415,7 +432,12 @@ Returns the last time the file was last modified.
 
 \constfunc{wxString}{GetName}{\void}
 
-Returns the name part of the filename.
+Returns the name part of the filename (without extension).
+
+\wxheading{See also}
+
+\helpref{GetFullName}{wxfilenamegetfullname}
+
 
 
 \membersection{wxFileName::GetPath}\label{wxfilenamegetpath}
@@ -473,6 +495,17 @@ same as \helpref{GetPathSeparators}{wxfilenamegetpathseparators} except for VMS
 path format where $]$ is used at the end of the path part.
 
 
+\membersection{wxFileName::GetPathWithSep}\label{wxfilenamegetpathwithsep}
+
+\constfunc{wxString}{GetPathWithSep}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
+
+Returns the path with the trailing separator, useful for appending the name to
+the given path.
+
+This is the same as calling \helpref{GetPath}{wxfilenamegetpath}
+\texttt{(wxPATH\_GET\_VOLUME | wxPATH\_GET\_SEPARATOR, format)}.
+
+
 \membersection{wxFileName::GetShortPath}\label{wxfilenamegetshortpath}
 
 \constfunc{wxString}{GetShortPath}{\void}
@@ -480,6 +513,33 @@ path format where $]$ is used at the end of the path part.
 Return the short form of the path (returns identity on non-Windows platforms).
 
 
+\membersection{wxFileName::GetSize}\label{wxfilenamegetsize}
+
+\constfunc{wxULongLong}{GetSize}{\void}
+
+\func{static wxULongLong}{GetSize}{\param{const wxString\& }{filename}}
+
+Returns the size of this file (first form) or the size of the given file (second form).
+If the file does not exist or its size could not be read (because e.g. the file is locked
+by another process) the returned value is {\tt wxInvalidSize}.
+
+
+\membersection{wxFileName::GetHumanReadableSize}\label{wxfilenamegethumanreadablesize}
+
+\constfunc{wxString}{GetHumanReadableSize}{\param{const wxString\& }{failmsg = "Not available"}, \param{int }{precision = 1}}
+
+\func{static wxString}{GetHumanReadableSize}{\param{const wxULongLong\& }{bytes}, \param{const wxString\& }{nullsize = "Not available"}, \param{int }{precision = 1}}
+
+Returns the size of this file (first form) or the given number of bytes (second form)
+in a human-readable form.
+
+If the size could not be retrieved the {\tt failmsg} string is returned (first form).
+If {\tt bytes} is {\tt wxInvalidSize} or zero, then {\tt nullsize} is returned (second form).
+
+In case of success, the returned string is a floating-point number with {\tt precision} decimal digits
+followed by the size unit (B, kB, MB, GB, TB: respectively bytes, kilobytes, megabytes, gigabytes, terabytes).
+
+
 \membersection{wxFileName::GetTimes}\label{wxfilenamegettimes}
 
 \constfunc{bool}{GetTimes}{\param{wxDateTime* }{dtAccess}, \param{wxDateTime* }{dtMod}, \param{wxDateTime* }{dtCreate}}
@@ -684,7 +744,7 @@ any or-combination of the following constants:
 \twocolitem{{\bf wxPATH\_NORM\_ENV\_VARS}}{replace env vars with their values}
 \twocolitem{{\bf wxPATH\_NORM\_DOTS}}{squeeze all .. and . and prepend cwd}
 \twocolitem{{\bf wxPATH\_NORM\_TILDE}}{Unix only: replace ~ and ~user}
-\twocolitem{{\bf wxPATH\_NORM\_CASE}}{if filesystem is case insensitive, transform to tolower case}
+\twocolitem{{\bf wxPATH\_NORM\_CASE}}{if filesystem is case insensitive, transform to lower case}
 \twocolitem{{\bf wxPATH\_NORM\_ABSOLUTE}}{make the path absolute}
 \twocolitem{{\bf wxPATH\_NORM\_LONG}}{make the path the long form}
 \twocolitem{{\bf wxPATH\_NORM\_SHORTCUT}}{resolve if it is a shortcut (Windows only)}
@@ -754,8 +814,28 @@ Changes the current working directory.
 
 \func{void}{SetExt}{\param{const wxString\& }{ext}}
 
-Sets the extension of this file name.
+Sets the extension of the file name. Setting an empty string
+as the extension will remove the extension resulting in a file 
+name without a trailing dot, unlike a call to 
+\helpref{SetEmptyExt}{wxfilenamesetemptyext}.
+
+\wxheading{See also}
 
+\helpref{SetEmptyExt}{wxfilenamesetemptyext}
+\helpref{ClearExt}{wxfilenameclearext}
+
+\membersection{wxFileName::SetEmptyExt}\label{wxfilenamesetemptyext}
+
+\func{void}{SetEmptyExt}{\void}
+
+Sets the extension of the file name to be an empty extension. 
+This is different from having no extension at all as the file 
+name will have a trailing dot after a call to this method.
+
+\wxheading{See also}
+
+\helpref{SetExt}{wxfilenamesetext}
+\helpref{ClearExt}{wxfilenameclearext}
 
 \membersection{wxFileName::SetFullName}\label{wxfilenamesetfullname}
 
@@ -768,7 +848,11 @@ The full name is the file name and extension (but without the path).
 
 \func{void}{SetName}{\param{const wxString\& }{name}}
 
-Sets the name.
+Sets the name part (without extension).
+
+\wxheading{See also}
+
+\helpref{SetFullName}{wxfilenamesetfullname}
 
 
 \membersection{wxFileName::SetTimes}\label{wxfilenamesettimes}