![]() |
MySQL 9.3.0
Source Code Documentation
|
Class representing a path in a file system. More...
#include <filesystem.h>
Public Types | |
enum class | FileType { STATUS_ERROR , EMPTY_PATH , FILE_NOT_FOUND , REGULAR_FILE , DIRECTORY_FILE , SYMLINK_FILE , BLOCK_FILE , CHARACTER_FILE , FIFO_FILE , SOCKET_FILE , TYPE_UNKNOWN } |
Enum used to identify file types. More... | |
Public Member Functions | |
Path () noexcept | |
Path (std::string path) | |
Construct a path. More... | |
Path (std::string_view path) | |
Path (const char *path) | |
bool | operator== (const Path &rhs) const |
bool | operator!= (const Path &rhs) const |
bool | operator< (const Path &rhs) const |
Path ordering operator. More... | |
FileType | type (bool refresh=false) const |
Get the file type. More... | |
bool | is_directory () const |
Check if the file is a directory. More... | |
bool | is_regular () const |
Check if the file is a regular file. More... | |
bool | is_absolute () const |
Check if the path is absolute or not. More... | |
bool | exists () const |
Check if path exists. More... | |
bool | is_readable () const |
Path | dirname () const |
Get the directory name of the path. More... | |
Path | basename () const |
Get the basename of the path. More... | |
std::string | extension () const |
Get the extention of the file. More... | |
void | append (const Path &other) |
Append a path component to the current path. More... | |
Path | join (const Path &other) const |
Join two path components to form a new path. More... | |
Path | real_path () const |
Returns the canonical form of the path, resolving relative paths. More... | |
const char * | c_str () const |
Get a C-string representation to the path. More... | |
const std::string & | str () const noexcept |
Get a string representation of the path. More... | |
bool | is_set () const noexcept |
Test if path is set. More... | |
operator bool () const noexcept | |
Static Public Member Functions | |
static Path | make_path (const Path &directory, const std::string &basename, const std::string &extension) |
Create a path from directory, basename, and extension. More... | |
Static Public Attributes | |
static const char *const | directory_separator = "/" |
Directory separator string. More... | |
static const char *const | root_directory = "/" |
Root directory string. More... | |
static const char *const | extension_separator = "." |
Extension separator string. More... | |
Private Member Functions | |
void | validate_non_empty_path () const |
Private Attributes | |
std::string | path_ |
FileType | type_ |
Friends | |
std::ostream & | operator<< (std::ostream &out, const Path &path) |
HARNESS_EXPORT std::ostream & | operator<< (std::ostream &out, FileType type) |
Class representing a path in a file system.
Paths are used to access files in the file system and can be either relative or absolute. Absolute paths have a slash (/
) first in the path, otherwise, the path is relative.
|
strong |
Enum used to identify file types.
|
noexcept |
Path::Path | ( | std::string | path | ) |
Construct a path.
path | Non-empty string denoting the path. |
std::invalid_argument | If "path" is not a valid path. |
|
inline |
|
inline |
void Path::append | ( | const Path & | other | ) |
Append a path component to the current path.
This function will append a path component to the path using the appropriate directory separator.
other | Path component to append to the path. |
Path Path::basename | ( | ) | const |
Get the basename of the path.
Return the basename of the path: the path without the directory portion.
|
inline |
Get a C-string representation to the path.
Path
object is destroyed.Path Path::dirname | ( | ) | const |
Get the directory name of the path.
This will strip the last component of a path, assuming that the what remains is a directory name. If the path is a relative path that do not contain any directory separators, a dot will be returned (denoting the current directory).
bool Path::exists | ( | ) | const |
Check if path exists.
std::string Path::extension | ( | ) | const |
Get the extention of the file.
The returned extension consists of last dot
and the extension shortcut. In case of file name that doesn't contain extension, then result is empty.
bool Path::is_absolute | ( | ) | const |
Check if the path is absolute or not.
The path is considered absolute if it starts with one of: Unix: '/' Windows: '/' or '\' or '.:' (where . is any character) else: it's considered relative (empty path is also relative in such respect)
bool Path::is_directory | ( | ) | const |
Check if the file is a directory.
bool Path::is_readable | ( | ) | const |
bool Path::is_regular | ( | ) | const |
Check if the file is a regular file.
|
inlinenoexcept |
Test if path is set.
Join two path components to form a new path.
This function will join the two path components using a directory separator.
Path
object. If you want to modify the existing path object, you should use append
instead.other | Path component to be appended to the path |
|
static |
Create a path from directory, basename, and extension.
|
inlinenoexcept |
|
inline |
bool Path::operator< | ( | const Path & | rhs | ) | const |
Path ordering operator.
This is mainly used for ordered containers. The paths are ordered lexicographically.
bool Path::operator== | ( | const Path & | rhs | ) | const |
Path Path::real_path | ( | ) | const |
Returns the canonical form of the path, resolving relative paths.
|
inlinenoexcept |
Get a string representation of the path.
Path::FileType Path::type | ( | bool | refresh = false | ) | const |
Get the file type.
The file type is normally cached so if the file type under a path changes it is necessary to force a refresh.
refresh | Set to true if the file type should be refreshed, default to false . |
|
private |
|
friend |
|
friend |
|
static |
Directory separator string.
|
static |
Extension separator string.
|
private |
|
static |
Root directory string.
|
mutableprivate |