|
static std::string | add_trailing_slash (const std::string &path, PathType path_type=path_type_file) |
| Add trailing slash or backslash to path.
|
|
static std::string | combine (const std::string &part1, const std::string &part2, PathType path_type=path_type_file) |
| Concatenates two strings into one adding a trailing slash to first string if missing.
|
|
static std::string | get_basename (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the basename part of a fullname.
|
|
static std::string | get_basepath (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the path excluding the location and filename.
|
|
static std::string | get_extension (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the extension part of a fullname.
|
|
static std::string | get_filename (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the filename part of a fullname.
|
|
static std::string | get_fullname (const std::string &fullpath, const std::string &filename, const std::string &extension, PathType path_type=path_type_file) |
| Create a fullname from parts.
|
|
static std::string | get_fullname (const std::string &fullpath, const std::string &filename, PathType path_type=path_type_file) |
| Create a fullname from parts.
|
|
static std::string | get_fullname (const std::string &location, const std::string &basepath, const std::string &filename, const std::string &extension, PathType path_type=path_type_file) |
| Create a fullname from parts.
|
|
static std::string | get_fullpath (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the path including the location.
|
|
static std::string | get_location (const std::string &fullname, PathType path_type=path_type_file) |
| Returns the drive (C:) or share name ( \ \ computer \ share)
|
|
static bool | is_absolute (const std::string &path, PathType path_type=path_type_file) |
| Check if a path is absolute.
|
|
static bool | is_relative (const std::string &path, PathType path_type=path_type_file) |
| Check if a path is relative.
|
|
static std::string | make_absolute (const std::string &base_path, const std::string &relative_path, PathType path_type=path_type_file) |
| Convert a relative path to an absolute path.
|
|
static std::string | make_relative (const std::string &base_path, const std::string &absolute_path, PathType path_type=path_type_file) |
| Converts an absolute path into a path relative to a base path.
|
|
static std::string | normalize (const std::string &path, PathType path_type=path_type_file) |
| Normalize a path.
|
|
static std::string | remove_trailing_slash (const std::string &path) |
| Remove trailing slash or backslash from path.
|
|
static std::vector< std::string > | split_basepath (const std::string &fullname, PathType path_type=path_type_file) |
| Splits the path, excluding the location, into parts.
|
|
static std::string clan::PathHelp::make_absolute |
( |
const std::string & | base_path, |
|
|
const std::string & | relative_path, |
|
|
PathType | path_type = path_type_file ) |
|
static |
Convert a relative path to an absolute path.
- Parameters
-
base_path | The base path (Does not require a trailing slash) |
relative_path | The relative path |
path_type | The path type |
- Returns
- The converted path
This function behaves differently depending on OS and path_type. In Windows, if the relative_path begins with a drive letter, and the driver letter differs from the base path, the path is converted to an absolute path using the current directory for that drive. Likewise, if the specified base path does not include a drive or its path is not absolute, the current drive and directory is added. The function converts all slashes to backslashes.
If the OS is unix based, there is no location (drive or share name) and the function also converts all backslashes to slashes.
If the type is path_type_virtual, the base path is required to be absolute. If it does not start in a slash, the function prefixes a slash to the path. The current drive or directory is never taken into account and all backslashes are converted to slashes.
This function calls normalise() on base_path and relative_path.
Example #1:
On Linux: str = "/home/user/ABD/DEF/GFX/Filename.txt"
On Windows: str = "c:\user\ABD\DEF\GFX\Filename.txt"
static std::string make_absolute(const std::string &base_path, const std::string &relative_path, PathType path_type=path_type_file)
Convert a relative path to an absolute path.
@ path_type_file
Native file system path. (On windows, '/' are turned into '\'. On linux, '\' are turned into '/')
Definition path_help.h:46
Example #2:
On Linux: str = "/ABD/Filename.txt"
On Windows: str = "c:\ABD\Filename.txt"
Example #3:
On Linux: str = "/ABD/Filename.txt"
On Windows: str = "/ABD/Filename.txt"
@ path_type_virtual
Path using slashes ('/').
Definition path_help.h:49