- These functions allow to examine and modify the individual directories
- of the path:
-
- @li AppendDir()
- @li InsertDir()
- @li GetDirCount()
- @li PrependDir()
- @li RemoveDir()
- @li RemoveLastDir()
-
- To change the components of the file name individually you can use the
- following functions:
-
- @li GetExt()
- @li GetName()
- @li GetVolume()
- @li HasExt()
- @li HasName()
- @li HasVolume()
- @li SetExt()
- @li ClearExt()
- @li SetEmptyExt()
- @li SetName()
- @li SetVolume()
-
- You can initialize a wxFileName instance using one of the following functions:
-
- @li wxFileName()
- @li Assign()
- @li AssignCwd()
- @li AssignDir()
- @li AssignHomeDir()
- @li DirName()
- @li FileName()
-
- wxFileName currently supports the file names in the Unix, DOS/Windows, Mac OS
- and VMS formats (Mac OS no longer being maintained as OS X uses the Unix notation).
- Although these formats are quite different, wxFileName tries 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
- @ref getpathseparators() "path separators"
- and the full filename itself which, in turn, is composed from the base file name
- and the extension. All of the individual components of the file name may be empty
- and, for example, the volume name is always empty under Unix, but if they are all
- empty simultaneously, the filename object is considered to be in an invalid
- state and IsOk() returns @false for it.
- File names can be case-sensitive or not, the function IsCaseSensitive() allows to
- determine this. 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 IsAbsolute() or IsRelative() 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 MakeAbsolute(). There is also an inverse function
- MakeRelativeTo() which undoes what Normalize(wxPATH_NORM_DOTS) does.
- Other functions returning information about the file format provided by this
- class are GetVolumeSeparator(), IsPathSeparator().
-
- Before doing other tests, you should use IsOk() to verify that the filename
- is well defined. If it is, FileExists() can be used to test whether a file
- with such name exists and DirExists() can be used to test for directory existence.
- File names should be compared using the SameAs() method or operator=(). For testing
- basic access modes, you can use:
-
- @li IsDirWritable()
- @li IsDirReadable()
- @li IsFileWritable()
- @li IsFileReadable()
- @li IsFileExecutable()
-
- These methods allow to work with the file creation, access and modification
- 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.
-
- @li GetModificationTime()
- @li GetTimes()
- @li SetTimes()
- @li Touch()
-
- Other file system operations functions are:
-
- @li Mkdir()
- @li Rmdir()
+ Please note that many wxFileName methods accept the path format argument
+ which is by @c wxPATH_NATIVE by default meaning to use the path format
+ native for the current platform.
+ The path format affects the operation of wxFileName functions in several ways:
+ first and foremost, it defines the path separator character to use, but it
+ also affects other things such as whether the path has the drive part or not.
+ See wxPathFormat for more info.
+
+
+ @section filename_format File name format
+
+ 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 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 path separators and the full
+ filename itself which, in turn, is composed from the base file name and the
+ extension. All of the individual components of the file name may be empty
+ and, for example, the volume name is always empty under Unix, but if they
+ are all empty simultaneously, the filename object is considered to be in an
+ invalid state and wxFileName::IsOk() returns false for it.
+
+ File names can be case-sensitive or not, the function wxFileName::IsCaseSensitive()
+ allows to determine this. 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 wxFileName::IsAbsolute() or wxFileName::IsRelative()
+ 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 wxFileName::MakeAbsolute().
+ There is also an inverse function wxFileName::MakeRelativeTo() which undoes
+ what wxFileName::Normalize(wxPATH_NORM_DOTS) does.
+ Other functions returning information about the file format provided by this
+ class are wxFileName::GetVolumeSeparator(), wxFileName::IsPathSeparator().
+
+
+ @section filename_construction File name construction
+
+ You can initialize a wxFileName instance using one of the following functions:
+
+ @li wxFileName::wxFileName()
+ @li wxFileName::Assign()
+ @li wxFileName::AssignCwd()
+ @li wxFileName::AssignDir()
+ @li wxFileName::AssignHomeDir()
+ @li wxFileName::AssignTempFileName()
+ @li wxFileName::DirName()
+ @li wxFileName::FileName()
+ @li wxFileName::operator=()
+
+
+ @section filename_tests File name tests
+
+ Before doing other tests, you should use wxFileName::IsOk() to verify that
+ the filename is well defined. If it is, FileExists() can be used to test whether
+ a file with such name exists and wxFileName::DirExists() can be used to test
+ for directory existence.
+ File names should be compared using the wxFileName::SameAs() method or
+ wxFileName::operator==(). For testing basic access modes, you can use:
+
+ @li wxFileName::IsDirWritable()
+ @li wxFileName::IsDirReadable()
+ @li wxFileName::IsFileWritable()
+ @li wxFileName::IsFileReadable()
+ @li wxFileName::IsFileExecutable()
+
+
+ @section filename_components File name components
+
+ These functions allow to examine and modify the individual directories
+ of the path:
+
+ @li wxFileName::AppendDir()
+ @li wxFileName::InsertDir()
+ @li wxFileName::GetDirCount()
+ @li wxFileName::PrependDir()
+ @li wxFileName::RemoveDir()
+ @li wxFileName::RemoveLastDir()
+
+ To change the components of the file name individually you can use the
+ following functions:
+
+ @li wxFileName::GetExt()
+ @li wxFileName::GetName()
+ @li wxFileName::GetVolume()
+ @li wxFileName::HasExt()
+ @li wxFileName::HasName()
+ @li wxFileName::HasVolume()
+ @li wxFileName::SetExt()
+ @li wxFileName::ClearExt()
+ @li wxFileName::SetEmptyExt()
+ @li wxFileName::SetName()
+ @li wxFileName::SetVolume()
+
+ You can initialize a wxFileName instance using one of the following functions:
+
+
+ @section filename_operations File name operations
+
+ These methods allow to work with the file creation, access and modification
+ 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.
+
+ @li wxFileName::GetModificationTime()
+ @li wxFileName::GetTimes()
+ @li wxFileName::SetTimes()
+ @li wxFileName::Touch()
+
+ Other file system operations functions are:
+
+ @li wxFileName::Mkdir()
+ @li wxFileName::Rmdir()