| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        filename.h
 
- // Purpose:     interface of wxFileName
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     The various values for the path format: this mainly affects the path
 
-     separator but also whether or not the path has the drive part
 
-     (as under Windows).
 
-     See wxFileName for more info.
 
- */
 
- enum wxPathFormat
 
- {
 
-     wxPATH_NATIVE = 0,      //!< the path format for the current platform.
 
-     wxPATH_UNIX,
 
-     wxPATH_BEOS = wxPATH_UNIX,
 
-     wxPATH_MAC,
 
-     wxPATH_DOS,
 
-     wxPATH_WIN = wxPATH_DOS,
 
-     wxPATH_OS2 = wxPATH_DOS,
 
-     wxPATH_VMS,
 
-     wxPATH_MAX   //!< Not a valid value for specifying path format
 
- };
 
- /**
 
-     Different conventions for human readable sizes.
 
-     @see wxFileName::GetHumanReadableSize().
 
-     @since 2.9.1
 
- */
 
- enum wxSizeConvention
 
- {
 
-     /// 1024 bytes = 1KB.
 
-     wxSIZE_CONV_TRADITIONAL,
 
-     /// 1024 bytes = 1KiB.
 
-     wxSIZE_CONV_IEC,
 
-     /// 1000 bytes = 1KB.
 
-     wxSIZE_CONV_SI
 
- };
 
- /**
 
-     The kind of normalization to do with the file name: these values can be
 
-     or'd together to perform several operations at once.
 
-     See wxFileName::Normalize() for more info.
 
- */
 
- enum wxPathNormalize
 
- {
 
-     //! Replace environment variables with their values.
 
-     //! wxFileName understands both Unix and Windows (but only under Windows) environment
 
-     //! variables expansion: i.e. @c "$var", @c "$(var)" and @c "${var}" are always understood
 
-     //! and in addition under Windows @c "%var%" is also.
 
-     wxPATH_NORM_ENV_VARS = 0x0001,
 
-     wxPATH_NORM_DOTS     = 0x0002,  //!< Squeeze all @c ".." and @c ".".
 
-     wxPATH_NORM_TILDE    = 0x0004,  //!< Replace @c "~" and @c "~user" (Unix only).
 
-     wxPATH_NORM_CASE     = 0x0008,  //!< If the platform is case insensitive, make lowercase the path.
 
-     wxPATH_NORM_ABSOLUTE = 0x0010,  //!< Make the path absolute.
 
-     wxPATH_NORM_LONG =     0x0020,  //!< Expand the path to the "long" form (Windows only).
 
-     wxPATH_NORM_SHORTCUT = 0x0040,  //!< Resolve the shortcut, if it is a shortcut (Windows only).
 
-     //! A value indicating all normalization flags except for @c wxPATH_NORM_CASE.
 
-     wxPATH_NORM_ALL      = 0x00ff & ~wxPATH_NORM_CASE
 
- };
 
- /**
 
-     Flags for wxFileName::Rmdir().
 
-  */
 
- enum
 
- {
 
-     /// Delete the specified directory and its subdirectories if they are empty.
 
-     wxPATH_RMDIR_FULL = 1,
 
-     /**
 
-       Delete the specified directory and all the files and subdirectories in it
 
-       recursively.
 
-       This flag is obviously @b dangerous and should be used with care and
 
-       after asking the user for confirmation.
 
-      */
 
-     wxPATH_RMDIR_RECURSIVE = 2
 
- };
 
- /**
 
-     Flags for wxFileName::Exists().
 
-     @since 2.9.5
 
-  */
 
- enum
 
- {
 
-     wxFILE_EXISTS_REGULAR   = 0x0001,  //!< Check for existence of a regular file
 
-     wxFILE_EXISTS_DIR       = 0x0002,  //!< Check for existence of a directory
 
-     /**
 
-         Check for existence of a symlink.
 
-         Notice that this flag also sets ::wxFILE_EXISTS_NO_FOLLOW, otherwise it
 
-         would never be satisfied as wxFileName::Exists() would be checking for
 
-         the existence of the symlink target and not the symlink itself.
 
-      */
 
-     wxFILE_EXISTS_SYMLINK   = 0x1004,
 
-     wxFILE_EXISTS_DEVICE    = 0x0008,  //!< Check for existence of a device
 
-     wxFILE_EXISTS_FIFO      = 0x0016,  //!< Check for existence of a FIFO
 
-     wxFILE_EXISTS_SOCKET    = 0x0032,  //!< Check for existence of a socket
 
-     wxFILE_EXISTS_NO_FOLLOW = 0x1000   //!< Don't dereference a contained symbolic link
 
-     wxFILE_EXISTS_ANY       = 0x1FFF,  //!< Check for existence of anything
 
- };
 
- /**
 
-     The return value of wxFileName::GetSize() in case of error.
 
- */
 
- wxULongLong wxInvalidSize;
 
- /**
 
-     @class wxFileName
 
-     wxFileName encapsulates a file name.
 
-     This class serves two purposes: first, it provides the functions to split the
 
-     file names into components and to recombine these components in the full file
 
-     name which can then be passed to the OS file functions
 
-     (and @ref group_funcmacro_file "wxWidgets functions" wrapping them).
 
-     Second, it includes the functions for working with the files itself. Note that
 
-     to change the file data you should use wxFile class instead.
 
-     wxFileName provides functions for working with the file attributes.
 
-     When working with directory names (i.e. without filename and extension)
 
-     make sure not to misuse the file name part of this class with the last
 
-     directory. Instead initialize the wxFileName instance like this:
 
-     @code
 
-     wxFileName dirname( "C:\mydir", "" );
 
-     MyMethod( dirname.GetPath() );
 
-     @endcode
 
-     The same can be done using the static method wxFileName::DirName():
 
-     @code
 
-     wxFileName dirname = wxFileName::DirName( "C:\mydir" );
 
-     MyMethod( dirname.GetPath() );
 
-     @endcode
 
-     Accordingly, methods dealing with directories or directory names like
 
-     wxFileName::IsDirReadable() use wxFileName::GetPath() whereas methods dealing
 
-     with file names like wxFileName::IsFileReadable() use wxFileName::GetFullPath().
 
-     If it is not known whether a string contains a directory name or a complete
 
-     file name (such as when interpreting user input) you need to use the static
 
-     function wxFileName::DirExists() (or its identical variants wxDir::Exists() and
 
-     wxDirExists()) and construct the wxFileName instance accordingly.
 
-     This will only work if the directory actually exists, of course:
 
-     @code
 
-     wxString user_input;
 
-     // get input from user
 
-     wxFileName fname;
 
-     if (wxDirExists(user_input))
 
-         fname.AssignDir( user_input );
 
-     else
 
-         fname.Assign( user_input );
 
-     @endcode
 
-     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()
 
-     @library{wxbase}
 
-     @category{file}
 
- */
 
- class wxFileName
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxFileName();
 
-     /**
 
-         Copy constructor.
 
-     */
 
-     wxFileName(const wxFileName& filename);
 
-     /**
 
-         Constructor taking a full filename.
 
-         If it terminates with a '/', a directory path is constructed
 
-         (the name will be empty), otherwise a file name and extension
 
-         are extracted from it.
 
-     */
 
-     wxFileName(const wxString& fullpath,
 
-                wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Constructor a directory name and file name.
 
-     */
 
-     wxFileName(const wxString& path, const wxString& name,
 
-                wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Constructor from a directory name, base file name and extension.
 
-     */
 
-     wxFileName(const wxString& path, const wxString& name,
 
-                const wxString& ext,
 
-                wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Constructor from a volume name, a directory name, base file name and extension.
 
-     */
 
-     wxFileName(const wxString& volume, const wxString& path,
 
-                const wxString& name,
 
-                const wxString& ext,
 
-                wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Appends a directory component to the path.
 
-         This component should contain a single directory name level, i.e. not
 
-         contain any path or volume separators nor should it be empty, otherwise
 
-         the function does nothing and returns false (and generates an assert
 
-         failure in debug build).
 
-         Notice that the return value is only available in wxWidgets 2.9.5 or
 
-         later.
 
-     */
 
-     bool AppendDir(const wxString& dir);
 
-     /**
 
-         Creates the file name from another filename object.
 
-     */
 
-     void Assign(const wxFileName& filepath);
 
-     /**
 
-         Creates the file name from a full file name with a path.
 
-     */
 
-     void Assign(const wxString& fullpath,
 
-                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Creates the file name from volume, path, name and extension.
 
-     */
 
-     void Assign(const wxString& volume, const wxString& path,
 
-                 const wxString& name,
 
-                 const wxString& ext,
 
-                 bool hasExt,
 
-                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Creates the file name from volume, path, name and extension.
 
-     */
 
-     void Assign(const wxString& volume, const wxString& path,
 
-                 const wxString& name,
 
-                 const wxString& ext,
 
-                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Creates the file name from file path and file name.
 
-     */
 
-     void Assign(const wxString& path, const wxString& name,
 
-                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Creates the file name from path, name and extension.
 
-     */
 
-     void Assign(const wxString& path, const wxString& name,
 
-                 const wxString& ext,
 
-                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Makes this object refer to the current working directory on the specified
 
-         volume (or current volume if @a volume is empty).
 
-         @see GetCwd()
 
-     */
 
-     void AssignCwd(const wxString& volume = wxEmptyString);
 
-     /**
 
-         Sets this file name object to the given directory name.
 
-         The name and extension will be empty.
 
-     */
 
-     void AssignDir(const wxString& dir,
 
-                    wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Sets this file name object to the home directory.
 
-     */
 
-     void AssignHomeDir();
 
-     /**
 
-         The function calls CreateTempFileName() to create a temporary file
 
-         and sets this object to the name of the file.
 
-         If a temporary file couldn't be created, the object is put into
 
-         an invalid state (see IsOk()).
 
-     */
 
-     void AssignTempFileName(const wxString& prefix);
 
-     /**
 
-         The function calls CreateTempFileName() to create a temporary
 
-         file name and open @a fileTemp with it.
 
-         If the file couldn't be opened, the object is put into
 
-         an invalid state (see IsOk()).
 
-     */
 
-     void AssignTempFileName(const wxString& prefix, wxFile* fileTemp);
 
-     /**
 
-         The function calls CreateTempFileName() to create a temporary
 
-         file name and open @a fileTemp with it.
 
-         If the file couldn't be opened, the object is put into
 
-         an invalid state (see IsOk()).
 
-     */
 
-     void AssignTempFileName(const wxString& prefix, wxFFile* fileTemp);
 
-     /**
 
-         Reset all components to default, uninitialized state.
 
-     */
 
-     void Clear();
 
-     /**
 
-         Removes the extension from the file name resulting in a
 
-         file name with no trailing dot.
 
-         @see SetExt(), SetEmptyExt()
 
-     */
 
-     void ClearExt();
 
-     /**
 
-         Returns a temporary file name starting with the given @e prefix.
 
-         If @a prefix is an absolute path and ends in a separator, the
 
-         temporary file is created in this directory; if it is an absolute
 
-         filepath or there is no separator, the temporary file is created in its
 
-         path, with the 'name' segment prepended to the temporary filename;
 
-         otherwise it is created in the default system directory for temporary
 
-         files or in the current directory.
 
-         If the function succeeds, the temporary file is actually created.
 
-         If @a fileTemp is not @NULL, this wxFile will be opened using the name of
 
-         the temporary file. Where possible this is done in an atomic way to ensure that
 
-         no race condition occurs between creating the temporary file name and opening
 
-         it, which might lead to a security compromise on multiuser systems.
 
-         If @a fileTemp is @NULL, the file is created but not opened.
 
-         Under Unix, the temporary file will have read and write permissions for the
 
-         owner only, to minimize security problems.
 
-         @param prefix
 
-             Location to use for the temporary file name construction. If @a prefix
 
-             is a directory it must have a terminal separator
 
-         @param fileTemp
 
-             The file to open, or @NULL just to get the name
 
-         @return The full temporary filepath, or an empty string on error.
 
-     */
 
-     static wxString CreateTempFileName(const wxString& prefix,
 
-                                        wxFile* fileTemp = NULL);
 
-     /**
 
-         This is the same as CreateTempFileName(const wxString &prefix, wxFile *fileTemp)
 
-         but takes a wxFFile parameter instead of wxFile.
 
-     */
 
-     static wxString CreateTempFileName(const wxString& prefix,
 
-                                        wxFFile* fileTemp = NULL);
 
-     /**
 
-         Returns @true if the directory with this name exists.
 
-         Notice that this function tests the directory part of this object,
 
-         i.e. the string returned by GetPath(), and not the full path returned
 
-         by GetFullPath().
 
-         @see FileExists(), Exists()
 
-     */
 
-     bool DirExists() const;
 
-     /**
 
-         Returns @true if the directory with name @a dir exists.
 
-         @see FileExists(), Exists()
 
-     */
 
-     static bool DirExists(const wxString& dir);
 
-     /**
 
-         Returns the object corresponding to the directory with the given name.
 
-         The @a dir parameter may have trailing path separator or not.
 
-     */
 
-     static wxFileName DirName(const wxString& dir,
 
-                               wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Turns off symlink dereferencing.
 
-         By default, all operations in this class work on the target of a
 
-         symbolic link (symlink) if the path of the file is actually a symlink.
 
-         Using this method allows to turn off this "symlink following" behaviour
 
-         and apply the operations to this path itself, even if it is a symlink.
 
-         The following methods are currently affected by this option:
 
-             - GetTimes() (but not SetTimes() as there is no portable way to
 
-               change the time of symlink itself).
 
-             - Existence checks: FileExists(), DirExists() and Exists() (notice
 
-               that static versions of these methods always follow symlinks).
 
-             - IsSameAs().
 
-         @see ShouldFollowLink()
 
-         @since 2.9.5
 
-     */
 
-     void DontFollowLink();
 
-      /**
 
-         Calls the static overload of this function with the full path of this
 
-         object.
 
-         @since 2.9.4 (@a flags is new since 2.9.5)
 
-      */
 
-     bool Exists(int flags = wxFILE_EXISTS_ANY) const;
 
-     /**
 
-         Returns @true if either a file or a directory or something else with
 
-         this name exists in the file system.
 
-         Don't dereference @a path if it is a symbolic link and @a flags
 
-         argument contains ::wxFILE_EXISTS_NO_FOLLOW.
 
-         This method is equivalent to @code FileExists() || DirExists() @endcode
 
-         under Windows, but under Unix it also returns true if the file
 
-         identifies a special file system object such as a device, a socket or a
 
-         FIFO.
 
-         Alternatively you may check for the existence of a file system entry of
 
-         a specific type by passing the appropriate @a flags (this parameter is
 
-         new since wxWidgets 2.9.5). E.g. to test for a symbolic link existence
 
-         you could use ::wxFILE_EXISTS_SYMLINK.
 
-         @since 2.9.4
 
-         @see FileExists(), DirExists()
 
-      */
 
-     static bool Exists(const wxString& path, int flags = wxFILE_EXISTS_ANY);
 
-     /**
 
-         Returns @true if the file with this name exists.
 
-         @see DirExists(), Exists()
 
-     */
 
-     bool FileExists() const;
 
-     /**
 
-         Returns @true if the file with name @a file exists.
 
-         @see DirExists(), Exists()
 
-     */
 
-     static bool FileExists(const wxString& file);
 
-     /**
 
-         Returns the file name object corresponding to the given @e file. This
 
-         function exists mainly for symmetry with DirName().
 
-     */
 
-     static wxFileName FileName(const wxString& file,
 
-                                wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Retrieves the value of the current working directory on the specified volume.
 
-         If the volume is empty, the program's current working directory is returned for
 
-         the current volume.
 
-         @return The string containing the current working directory or an empty
 
-                 string on error.
 
-         @see AssignCwd()
 
-     */
 
-     static wxString GetCwd(const wxString& volume = wxEmptyString);
 
-     /**
 
-         Returns the number of directories in the file name.
 
-     */
 
-     size_t GetDirCount() const;
 
-     /**
 
-         Returns the directories in string array form.
 
-     */
 
-     const wxArrayString& GetDirs() const;
 
-     /**
 
-         Returns the file name extension.
 
-     */
 
-     wxString GetExt() const;
 
-     /**
 
-         Returns the characters that can't be used in filenames and directory names
 
-         for the specified format.
 
-     */
 
-     static wxString GetForbiddenChars(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns the canonical path format for this platform.
 
-     */
 
-     static wxPathFormat GetFormat(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns the full name (including extension but excluding directories).
 
-     */
 
-     wxString GetFullName() const;
 
-     /**
 
-         Returns the full path with name and extension.
 
-     */
 
-     wxString GetFullPath(wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         Returns the home directory.
 
-     */
 
-     static wxString GetHomeDir();
 
-     //@{
 
-     /**
 
-         Returns the representation of the file size in a human-readable form.
 
-         In the first version, the size of this file is used. In the second one,
 
-         the specified size @a bytes is used.
 
-         If the file size could not be retrieved or @a bytes is ::wxInvalidSize
 
-         or zero, the @c failmsg string is returned.
 
-         Otherwise the returned string is a floating-point number with @c
 
-         precision decimal digits followed by the abbreviation of the unit used.
 
-         By default the traditional, although incorrect, convention of using SI
 
-         units for multiples of 1024 is used, i.e. returned string will use
 
-         suffixes of B, KB, MB, GB, TB for bytes, kilobytes, megabytes,
 
-         gigabytes and terabytes respectively. With the IEC convention the names
 
-         of the units are changed to B, KiB, MiB, GiB and TiB for bytes,
 
-         kibibytes, mebibytes, gibibytes and tebibytes. Finally, with SI
 
-         convention the same B, KB, MB, GB and TB suffixes are used but in their
 
-         correct SI meaning, i.e. as multiples of 1000 and not 1024.
 
-         Support for the different size conventions is new in wxWidgets 2.9.1,
 
-         in previous versions only the traditional convention was implemented.
 
-     */
 
-     wxString
 
-     GetHumanReadableSize(const wxString& failmsg = _("Not available"),
 
-                          int precision = 1,
 
-                          wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL) const;
 
-     static wxString
 
-     GetHumanReadableSize(const wxULongLong& bytes,
 
-                          const wxString& nullsize = _("Not available"),
 
-                          int precision = 1,
 
-                          wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL);
 
-     //@}
 
-     /**
 
-         Return the long form of the path (returns identity on non-Windows platforms).
 
-     */
 
-     wxString GetLongPath() const;
 
-     /**
 
-         Returns the last time the file was last modified.
 
-     */
 
-     wxDateTime GetModificationTime() const;
 
-     /**
 
-         Returns the name part of the filename (without extension).
 
-         @see GetFullName()
 
-     */
 
-     wxString GetName() const;
 
-     /**
 
-         Returns the path part of the filename (without the name or extension).
 
-         The possible flags values are:
 
-         - @b wxPATH_GET_VOLUME:
 
-         Return the path with the volume (does nothing for the filename formats
 
-         without volumes), otherwise the path without volume part is returned.
 
-         - @b 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.
 
-         - @b wxPATH_NO_SEPARATOR:
 
-         Don't include the trailing separator in the returned string. This is
 
-         the default (the value of this flag is 0) and exists only for symmetry
 
-         with wxPATH_GET_SEPARATOR.
 
-         @note If the path is a toplevel one (e.g. @c "/" on Unix or @c "C:\" on
 
-               Windows), then the returned path will contain trailing separator
 
-               even with @c wxPATH_NO_SEPARATOR.
 
-     */
 
-     wxString GetPath(int flags = wxPATH_GET_VOLUME,
 
-                      wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         Returns the usually used path separator for this format.
 
-         For all formats but @c 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.
 
-         @see GetPathSeparators()
 
-     */
 
-     static wxUniChar GetPathSeparator(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns the string containing all the path separators for this format.
 
-         For all formats but @c wxPATH_DOS this string contains only one character
 
-         but for DOS and Windows both @c '/' and @c '\' may be used as separators.
 
-         @see GetPathSeparator()
 
-     */
 
-     static wxString GetPathSeparators(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns the string of characters which may terminate the path part.
 
-         This is the same as GetPathSeparators() except for VMS
 
-         path format where ] is used at the end of the path part.
 
-     */
 
-     static wxString GetPathTerminators(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
 
-         @code
 
-         GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR, format)
 
-         @endcode
 
-     */
 
-     wxString GetPathWithSep(wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         Return the short form of the path (returns identity on non-Windows platforms).
 
-     */
 
-     wxString GetShortPath() const;
 
-     /**
 
-         Returns the size of the file 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 ::wxInvalidSize.
 
-     */
 
-     wxULongLong GetSize() const;
 
-     /**
 
-         Returns the size of the file 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 ::wxInvalidSize.
 
-     */
 
-     static wxULongLong GetSize(const wxString& filename);
 
-     /**
 
-         Returns the directory used for temporary files.
 
-     */
 
-     static wxString GetTempDir();
 
-     /**
 
-         Returns 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.
 
-         If no filename or extension is specified in this instance of wxFileName
 
-         (and therefore IsDir() returns @true) then this function will return the
 
-         directory times of the path specified by GetPath(), otherwise the file
 
-         times of the file specified by GetFullPath().
 
-         Any of the pointers may be @NULL if the corresponding time is not needed.
 
-         @return @true on success, @false if we failed to retrieve the times.
 
-     */
 
-     bool GetTimes(wxDateTime* dtAccess, wxDateTime* dtMod,
 
-                   wxDateTime* dtCreate) const;
 
-     /**
 
-         Returns the string containing the volume for this file name, empty if it
 
-         doesn't have one or if the file system doesn't support volumes at all
 
-         (for example, Unix).
 
-     */
 
-     wxString GetVolume() const;
 
-     /**
 
-         Returns the string separating the volume from the path for this format.
 
-     */
 
-     static wxString GetVolumeSeparator(wxPathFormat format = wxPATH_NATIVE);
 
-      /**
 
-         This function builds a volume path string, for example "C:\\".
 
-         Implemented for the platforms which use drive letters, i.e. DOS, MSW
 
-         and OS/2 only.
 
-         @since 2.9.0
 
-         @param drive
 
-             The drive letter, 'A' through 'Z' or 'a' through 'z'.
 
-         @param flags
 
-             @c wxPATH_NO_SEPARATOR or @c wxPATH_GET_SEPARATOR to omit or include
 
-             the trailing path separator, the default is to include it.
 
-         @return Volume path string.
 
-     */
 
-     static wxString GetVolumeString(char drive, int flags = wxPATH_GET_SEPARATOR);
 
-     /**
 
-         Returns @true if an extension is present.
 
-     */
 
-     bool HasExt() const;
 
-     /**
 
-         Returns @true if a name is present.
 
-     */
 
-     bool HasName() const;
 
-     /**
 
-         Returns @true if a volume specifier is present.
 
-     */
 
-     bool HasVolume() const;
 
-     /**
 
-         Inserts a directory component before the zero-based position in the
 
-         directory list.
 
-         As with AppendDir(), @a dir must be a single directory name and the
 
-         function returns @false and does nothing else if it isn't.
 
-         Notice that the return value is only available in wxWidgets 2.9.5 or
 
-         later.
 
-     */
 
-     bool InsertDir(size_t before, const wxString& dir);
 
-     /**
 
-         Returns @true if this filename is absolute.
 
-     */
 
-     bool IsAbsolute(wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         Returns @true if the file names of this type are case-sensitive.
 
-     */
 
-     static bool IsCaseSensitive(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns @true if this object represents a directory, @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 DirExists() or FileExists() for this.
 
-     */
 
-     bool IsDir() const;
 
-     /**
 
-         Returns @true if the directory component of this instance is an existing
 
-         directory and this process has read permissions on it. Read permissions
 
-         on a directory mean that you can list the directory contents but it
 
-         doesn't imply that you have read permissions on the files contained.
 
-     */
 
-     bool IsDirReadable() const;
 
-     /**
 
-         Returns @true if the given @e dir is an existing directory and this process
 
-         has read permissions on it. Read permissions on a directory mean that you
 
-         can list the directory contents but it doesn't imply that you have read
 
-         permissions on the files contained.
 
-     */
 
-     static bool IsDirReadable(const wxString& dir);
 
-     /**
 
-         Returns @true if the directory component of this instance
 
-         is an existing directory and this process has write permissions on it.
 
-         Write permissions on a directory mean that you can create new files in the
 
-         directory.
 
-     */
 
-     bool IsDirWritable() const;
 
-     /**
 
-         Returns @true if the  given @a dir is an existing directory and this
 
-         process has write permissions on it.
 
-         Write permissions on a directory mean that you can create new files in the
 
-         directory.
 
-     */
 
-     static bool IsDirWritable(const wxString& dir);
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has execute
 
-         permissions on it.
 
-     */
 
-     bool IsFileExecutable() const;
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has execute
 
-         permissions on it.
 
-     */
 
-     static bool IsFileExecutable(const wxString& file);
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has read
 
-         permissions on it.
 
-     */
 
-     bool IsFileReadable() const;
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has read
 
-         permissions on it.
 
-     */
 
-     static bool IsFileReadable(const wxString& file);
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has write
 
-         permissions on it.
 
-     */
 
-     bool IsFileWritable() const;
 
-     /**
 
-         Returns @true if a file with this name exists and if this process has write
 
-         permissions on it.
 
-     */
 
-     static bool IsFileWritable(const wxString& file);
 
-     /**
 
-         Returns @true if the filename is valid, @false if it is not initialized yet.
 
-         The assignment functions and Clear() may reset the object to the uninitialized,
 
-         invalid state (the former only do it on failure).
 
-     */
 
-     bool IsOk() const;
 
-     /**
 
-         Returns @true if the char is a path separator for this format.
 
-     */
 
-     static bool IsPathSeparator(wxChar ch,
 
-                                 wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns @true if the volume part of the path is a unique volume name.
 
-         This function will always return @false if the path format is not
 
-         wxPATH_DOS.
 
-         Unique volume names are Windows volume identifiers which remain the same
 
-         regardless of where the volume is actually mounted. Example of a path
 
-         using a volume name could be
 
-         @code
 
-             \\?\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\Program Files\setup.exe
 
-         @endcode
 
-         @since 2.9.1
 
-     */
 
-     static bool IsMSWUniqueVolumeNamePath(const wxString& path,
 
-                                           wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Returns @true if this filename is not absolute.
 
-     */
 
-     bool IsRelative(wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         On Mac OS, gets the common type and creator for the given extension.
 
-         @onlyfor{wxosx}
 
-     */
 
-     static bool MacFindDefaultTypeAndCreator(const wxString& ext,
 
-                                             wxUint32* type,
 
-                                             wxUint32* creator);
 
-     /**
 
-         On Mac OS, registers application defined extensions and their default type
 
-         and creator.
 
-         @onlyfor{wxosx}
 
-     */
 
-     static void MacRegisterDefaultTypeAndCreator(const wxString& ext,
 
-                                                 wxUint32 type,
 
-                                                 wxUint32 creator);
 
-     /**
 
-         On Mac OS, looks up the appropriate type and creator from the registration
 
-         and then sets it.
 
-         @onlyfor{wxosx}
 
-     */
 
-     bool MacSetDefaultTypeAndCreator();
 
-     /**
 
-         Make the file name absolute.
 
-         This is a shortcut for
 
-         @code
 
-         wxFileName::Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE |
 
-                               wxPATH_NORM_TILDE, cwd, format)
 
-         @endcode
 
-         @see MakeRelativeTo(), Normalize(), IsAbsolute()
 
-     */
 
-     bool MakeAbsolute(const wxString& cwd = wxEmptyString,
 
-                       wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         This function tries to put this file name in a form relative to
 
-         @a pathBase.
 
-         In other words, it returns the file name which should be used to access
 
-         this file if the current directory were pathBase.
 
-         @param pathBase
 
-             The directory to use as root, current directory is used by default
 
-         @param format
 
-             The file name format, native by default
 
-         @return @true if the file name has been changed, @false if we failed to do
 
-                 anything with it (currently this only happens if the file name
 
-                 is on a volume different from the volume specified by @a pathBase).
 
-         @see Normalize()
 
-     */
 
-     bool MakeRelativeTo(const wxString& pathBase = wxEmptyString,
 
-                         wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Creates a directory.
 
-         @param perm
 
-             The permissions for the newly created directory.
 
-             See the ::wxPosixPermissions enumeration for more info.
 
-         @param flags
 
-             If the flags contain @c 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.
 
-         @return Returns @true if the directory was successfully created, @false
 
-                 otherwise.
 
-     */
 
-     bool Mkdir(int perm = wxS_DIR_DEFAULT, int flags = 0) const;
 
-     /**
 
-         Creates a directory.
 
-         @param dir
 
-             The directory to create
 
-         @param perm
 
-             The permissions for the newly created directory.
 
-             See the ::wxPosixPermissions enumeration for more info.
 
-         @param flags
 
-             If the flags contain @c 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.
 
-         @return Returns @true if the directory was successfully created, @false
 
-                 otherwise.
 
-     */
 
-     static bool Mkdir(const wxString& dir, int perm = wxS_DIR_DEFAULT,
 
-                       int flags = 0);
 
-     /**
 
-         Normalize the path.
 
-         With the default flags value, the path will be made absolute, without
 
-         any ".." and "." and all environment variables will be expanded in it.
 
-         Notice that in some rare cases normalizing a valid path may result in
 
-         an invalid wxFileName object. E.g. normalizing "./" path using
 
-         wxPATH_NORM_DOTS but not wxPATH_NORM_ABSOLUTE will result in a
 
-         completely empty and thus invalid object. As long as there is a non
 
-         empty file name the result of normalization will be valid however.
 
-         @param flags
 
-             The kind of normalization to do with the file name. It can be
 
-             any or-combination of the ::wxPathNormalize enumeration values.
 
-         @param cwd
 
-             If not empty, this directory will be used instead of current
 
-             working directory in normalization (see @c wxPATH_NORM_ABSOLUTE).
 
-         @param format
 
-             The file name format to use when processing the paths, native by default.
 
-         @return @true if normalization was successfully or @false otherwise.
 
-     */
 
-     bool Normalize(int flags = wxPATH_NORM_ALL,
 
-                    const wxString& cwd = wxEmptyString,
 
-                    wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Prepends a directory to the file path.
 
-         Please see AppendDir() for important notes.
 
-     */
 
-     void PrependDir(const wxString& dir);
 
-     /**
 
-         Removes the specified directory component from the path.
 
-         @see GetDirCount()
 
-     */
 
-     void RemoveDir(size_t pos);
 
-     /**
 
-         Removes last directory component from the path.
 
-     */
 
-     void RemoveLastDir();
 
-     /**
 
-         If the path contains the value of the environment variable named @a envname
 
-         then this function replaces it with the string obtained from
 
-         wxString::Format(replacementFmtString, value_of_envname_variable).
 
-         This function is useful to make the path shorter or to make it dependent
 
-         from a certain environment variable.
 
-         Normalize() with @c wxPATH_NORM_ENV_VARS can perform the opposite of this
 
-         function (depending on the value of @a replacementFmtString).
 
-         The name and extension of this filename are not modified.
 
-         Example:
 
-         @code
 
-             wxFileName fn("/usr/openwin/lib/someFile");
 
-             fn.ReplaceEnvVariable("OPENWINHOME");
 
-                     // now fn.GetFullPath() == "$OPENWINHOME/lib/someFile"
 
-         @endcode
 
-         @since 2.9.0
 
-         @return @true if the operation was successful (which doesn't mean
 
-                 that something was actually replaced, just that ::wxGetEnv
 
-                 didn't fail).
 
-     */
 
-     bool ReplaceEnvVariable(const wxString& envname,
 
-                             const wxString& replacementFmtString = "$%s",
 
-                             wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Replaces, if present in the path, the home directory for the given user
 
-         (see ::wxGetHomeDir) with a tilde (~).
 
-         Normalize() with @c wxPATH_NORM_TILDE performs the opposite of this
 
-         function.
 
-         The name and extension of this filename are not modified.
 
-         @since 2.9.0
 
-         @return @true if the operation was successful (which doesn't mean
 
-                 that something was actually replaced, just that ::wxGetHomeDir
 
-                 didn't fail).
 
-     */
 
-     bool ReplaceHomeDir(wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Deletes the specified directory from the file system.
 
-         @param flags
 
-             Can contain one of wxPATH_RMDIR_FULL or wxPATH_RMDIR_RECURSIVE. By
 
-             default contains neither so the directory will not be removed
 
-             unless it is empty.
 
-         @return Returns @true if the directory was successfully deleted, @false
 
-                 otherwise.
 
-     */
 
-     bool Rmdir(int flags = 0) const;
 
-     /**
 
-         Deletes the specified directory from the file system.
 
-         @param dir
 
-             The directory to delete
 
-         @param flags
 
-             Can contain one of wxPATH_RMDIR_FULL or wxPATH_RMDIR_RECURSIVE. By
 
-             default contains neither so the directory will not be removed
 
-             unless it is empty.
 
-         @return Returns @true if the directory was successfully deleted, @false
 
-                 otherwise.
 
-     */
 
-     static bool Rmdir(const wxString& dir, int flags = 0);
 
-     /**
 
-         Compares the filename using the rules of this platform.
 
-     */
 
-     bool SameAs(const wxFileName& filepath,
 
-                 wxPathFormat format = wxPATH_NATIVE) const;
 
-     /**
 
-         Changes the current working directory.
 
-     */
 
-     bool SetCwd() const;
 
-     /**
 
-         Changes the current working directory.
 
-     */
 
-     static bool SetCwd(const wxString& cwd);
 
-     /**
 
-         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.
 
-         @see SetExt(), ClearExt()
 
-     */
 
-     void SetEmptyExt();
 
-     /**
 
-         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
 
-         SetEmptyExt().
 
-         @see SetEmptyExt(), ClearExt()
 
-     */
 
-     void SetExt(const wxString& ext);
 
-     /**
 
-         The full name is the file name and extension (but without the path).
 
-     */
 
-     void SetFullName(const wxString& fullname);
 
-     /**
 
-         Sets the name part (without extension).
 
-         @see SetFullName()
 
-     */
 
-     void SetName(const wxString& name);
 
-     /**
 
-         Sets the path.
 
-         The @a path argument includes both the path and the volume, if
 
-         supported by @a format.
 
-         Calling this function doesn't affect the name and extension components,
 
-         to change them as well you can use Assign() or just an assignment
 
-         operator.
 
-         @see GetPath()
 
-      */
 
-     void SetPath(const wxString& path, wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Sets permissions for this file or directory.
 
-         @param permissions
 
-             The new permissions: this should be a combination of
 
-             ::wxPosixPermissions enum elements.
 
-         @since 3.0
 
-         @note If this is a symbolic link and it should not be followed
 
-               this call will fail.
 
-         @return @true on success, @false if an error occurred (for example,
 
-                 the file doesn't exist).
 
-     */
 
-     bool SetPermissions(int permissions);
 
-     /**
 
-         Sets the file creation and last access/modification times (any of the pointers
 
-         may be @NULL).
 
-         Notice that the file creation time can't be changed under Unix, so @a
 
-         dtCreate is ignored there (but @true is still returned). Under Windows
 
-         all three times can be set.
 
-     */
 
-     bool SetTimes(const wxDateTime* dtAccess,
 
-                   const wxDateTime* dtMod,
 
-                   const wxDateTime* dtCreate) const;
 
-     /**
 
-         Sets the volume specifier.
 
-     */
 
-     void SetVolume(const wxString& volume);
 
-     /**
 
-         Return whether some operations will follow symlink.
 
-         By default, file operations "follow symlink", i.e. operate on its
 
-         target and not on the symlink itself. See DontFollowLink() for more
 
-         information.
 
-         @since 2.9.5
 
-     */
 
-     bool ShouldFollowLink() const;
 
-     //@{
 
-     /**
 
-         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 (@e volume, @e path, @a name or @e ext) may
 
-         be @NULL if you are not interested in the value of a particular component.
 
-         Also, @a fullpath may be empty on entry.
 
-         On return, @a path contains the file path (without the trailing separator),
 
-         @a name contains the file name and @a 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 @NULL).
 
-         Note that for a filename "foo." the extension is present, as indicated by the
 
-         trailing dot, but empty. If you need to cope with such cases, you should use
 
-         @a hasExt instead of relying on testing whether @a ext is empty or not.
 
-     */
 
-     static void SplitPath(const wxString& fullpath,
 
-                           wxString* volume,
 
-                           wxString* path,
 
-                           wxString* name,
 
-                           wxString* ext,
 
-                           bool* hasExt = NULL,
 
-                           wxPathFormat format = wxPATH_NATIVE);
 
-     static void SplitPath(const wxString& fullpath,
 
-                           wxString* volume,
 
-                           wxString* path,
 
-                           wxString* name,
 
-                           wxString* ext,
 
-                           wxPathFormat format);
 
-     static void SplitPath(const wxString& fullpath,
 
-                           wxString* path,
 
-                           wxString* name,
 
-                           wxString* ext,
 
-                           wxPathFormat format = wxPATH_NATIVE);
 
-     //@}
 
-     /**
 
-         Splits the given @a fullpath into the volume part (which may be empty) and
 
-         the pure path part, not containing any volume.
 
-         @see SplitPath()
 
-     */
 
-     static void SplitVolume(const wxString& fullpath,
 
-                             wxString* volume,
 
-                             wxString* path,
 
-                             wxPathFormat format = wxPATH_NATIVE);
 
-     /**
 
-         Strip the file extension.
 
-         This function does more than just removing everything after the last
 
-         period from the string, for example it will return the string ".vimrc"
 
-         unchanged because the part after the period is not an extension but the
 
-         file name in this case. You can use wxString::BeforeLast() to really
 
-         get just the part before the last period (but notice that that function
 
-         returns empty string if period is not present at all unlike this
 
-         function which returns the @a fullname unchanged in this case).
 
-         @param fullname
 
-            File path including name and, optionally, extension.
 
-         @return
 
-             File path without extension
 
-         @since 2.9.0
 
-     */
 
-     static wxString StripExtension(const wxString& fullname);
 
-     /**
 
-         Sets the access and modification times to the current moment.
 
-     */
 
-     bool Touch() const;
 
-     /**
 
-         Returns @true if the filenames are different. The string @e filenames
 
-         is interpreted as a path in the native filename format.
 
-     */
 
-     bool operator!=(const wxFileName& filename) const;
 
-     /**
 
-         Returns @true if the filenames are different. The string @e filenames
 
-         is interpreted as a path in the native filename format.
 
-     */
 
-     bool operator!=(const wxString& filename) const;
 
-     /**
 
-         Returns @true if the filenames are equal. The string @e filenames is
 
-         interpreted as a path in the native filename format.
 
-     */
 
-     bool operator==(const wxFileName& filename) const;
 
-     /**
 
-         Returns @true if the filenames are equal. The string @e filenames is
 
-         interpreted as a path in the native filename format.
 
-     */
 
-     bool operator==(const wxString& filename) const;
 
-     /**
 
-         Assigns the new value to this filename object.
 
-     */
 
-     wxFileName& operator=(const wxFileName& filename);
 
-     /**
 
-         Assigns the new value to this filename object.
 
-     */
 
-     wxFileName& operator=(const wxString& filename);
 
- };
 
 
  |