Path Class Reference

A file/directory path. More...

#include "Path.hpp"

+ Inheritance diagram for Path:

Public Types

typedef String::size_type size_type

Public Member Functions

 Path (const char *)
 Path (const String &)
 Path (const Path &)
void clear ()
 postcondition: this->empty() is true.
Pathmake_absolute ()
 postcondition: For the returned path, is_absolute() is true.
Pathmake_preferred ()
 Convert the contained pathname to the native format.
Pathremove_filename ()
 if has_parent_path() then remove the last filename from the stored path.
Pathreplace_extension (const String &new_extension=String())
 postcondition: extension() == new_extension (where a leading dot has been removed from replacement, if present)
void swap (Path &)
 swaps the contents of the two paths.
const String string () const
 returns the stored path, formatted according to the operating system rules for regular file pathnames
Path root_name () const
 returns the root name (e.g. d:/path/filename.ext -> d:)
Path root_directory () const
 returns the root directory (e.g. d:/path/filename.ext -> /)
Path root_path () const
 returns root_name() + root_directory()
Path relative_path () const
 returns the stored path without root_path() (e.g. d:/path/file.ext -> path/file.ext)
Path parent_path () const
 returns the parent directory, if any (e.g. d:/path/filename.ext -> d:/path/)
Path filename () const
 returns the filename (i.e. /path/filename.ext -> filename.ext)
String stem () const
 returns the filename without extension (i.e. /path/filename.ext -> filename)
String extension () const
 returns the filename extension (i.e. /path/filename.ext -> .ext)
bool empty () const
 returns string().empty()
bool has_root_name () const
 returns !root_name().empty()
bool has_root_directory () const
 returns !root_directory().empty()
bool has_root_path () const
 returns !root_path().empty()
bool has_relative_path () const
 returns !relative_path().empty()
bool has_parent_path () const
 returns !parent_path().empty()
bool has_filename () const
 returns !filename().empty()
bool has_stem () const
 returns !stem().empty()
bool has_extension () const
 returns !extension().empty()
bool is_absolute () const
 returns true if the elements of root_path() uniquely identify a directory, else false
bool is_relative () const
 returns !is_absolute()
Pathnormalize ()
 Replace symlinks, replace '/' with '\', replace "foo/../bar" with "bar", etc.
String compressed (size_type length) const
 shorten path to length, e.g. d:/foo_long_directory_name/bar.txt -> d:/foo.../bar.txt
assignment operators
Pathoperator= (const char *)
Pathoperator= (const String &)
Pathoperator= (const Path &)
append a file / directory name

introducing a '/' between the stored path and the directory/filename to append

Pathoperator/= (const char *)
Pathoperator/= (const String &)
Pathoperator/= (const Path &)
add a string

return a path where a string has been appended to the stored path (not introducing a '/' in between)

Path operator+ (const char *) const
Path operator+ (const String &) const
append a string

append a string to the stored path (not introducing a '/' in between)

Pathoperator+= (const char *)
Pathoperator+= (const String &)

Related Functions

(Note that these are not member functions.)

void swap (Path &, Path &)
Path operator/ (const Path &lhs, const Path &rhs)
Path operator/ (const Path &lhs, const char *rhs)
Path operator/ (const char *lhs, const Path &rhs)
Path operator/ (const Path &lhs, const String &rhs)
Path operator/ (const String &lhs, const Path &rhs)
bool operator< (const Path &, const Path &)
bool operator<= (const Path &, const Path &)
bool operator> (const Path &, const Path &)
bool operator>= (const Path &, const Path &)
bool operator== (const Path &, const Path &)
bool operator== (const Path &, const String &)
bool operator== (const String &, const Path &)
bool operator== (const Path &, const char *)
bool operator== (const char *, const Path &)
bool operator!= (const Path &, const Path &)
bool operator!= (const Path &, const String &)
bool operator!= (const String &, const Path &)
bool operator!= (const Path &, const char *)
bool operator!= (const char *, const Path &)

Detailed Description

A file/directory path.

Internally, all '\' are replaced by '/'