Cross-platform filesystem path and file helpers.
| Return | Name | Description |
|---|---|---|
std::string | filename | Returns the file name and extension part of the given path. |
std::string | basename | Returns the file name without its extension. |
std::string | dirname | Returns the directory part of the path. |
std::string | extname | Returns the file extension part of the path. |
bool | exists | Returns true if the file or directory exists. |
bool | isdir | Returns true if the path refers to a directory. |
std::int64_t | filesize | Returns the size in bytes of the given file. |
void | readdir | Populates res with the names of all entries in the given directory. |
void | mkdir | Creates a single directory. |
void | mkdirr | Creates a directory and all missing parent directories. |
void | rmdir | Removes an empty directory. |
void | unlink | Deletes a file. |
void | rename | Renames or moves the given file to the target path. |
void | addsep | Appends the platform-specific path separator to path if not already present. |
void | addnode | Appends a path node to path, inserting a separator if necessary. |
std::string | makePath | Joins a base path and a node component into a single path string. |
std::string | normalize | Normalizes a path by resolving . and .. segments and converting separators to the native platform style. |
std::string | transcode | Transcodes a path to the native platform format. On Windows with ICY_UNICODE defined, converts to the Windows-native wide-to-narrow format. On other platforms, returns the path unchanged. |
bool | savefile | Writes size bytes from data to the file at path, creating or overwriting it. |
std::string filename(std::string_view path)Returns the file name and extension part of the given path.
path Filesystem path to parse.Filename component including extension (e.g. "file.txt").
std::string basename(std::string_view path)Returns the file name without its extension.
path Filesystem path to parse.Filename without the extension (e.g. "file").
std::string dirname(std::string_view path)Returns the directory part of the path.
path Filesystem path to parse.Directory component including trailing separator (e.g. "/usr/local/").
std::string extname(std::string_view path, bool includeDot)Returns the file extension part of the path.
path Filesystem path to parse.
includeDot If true (default), includes the leading dot (e.g. ".txt"); if false, the dot is stripped.
Extension string, or empty if the path has no extension.
bool exists(std::string_view path)Returns true if the file or directory exists.
path Path to check.True if the path exists on the filesystem.
bool isdir(std::string_view path)Returns true if the path refers to a directory.
path Path to check.True if the path exists and is a directory.
std::int64_t filesize(std::string_view path)Returns the size in bytes of the given file.
path Path to the file.File size in bytes, or -1 if the file does not exist.
void readdir(std::string_view path, std::vector< std::string > & res)Populates res with the names of all entries in the given directory.
path Path to the directory to read.
res Vector to receive the list of entry names.
void mkdir(std::string_view path, int mode)Creates a single directory.
path Path of the directory to create.
mode Permission bits (default: 0755). Ignored on Windows.
void mkdirr(std::string_view path, int mode)Creates a directory and all missing parent directories.
path Path of the directory hierarchy to create.
mode Permission bits (default: 0755). Ignored on Windows.
void rmdir(std::string_view path)Removes an empty directory.
path Path of the directory to remove.void unlink(std::string_view path)Deletes a file.
path Path of the file to delete.void rename(std::string_view path, std::string_view target)Renames or moves the given file to the target path.
path Source file path.
target Destination file path.
void addsep(std::string & path)Appends the platform-specific path separator to path if not already present.
path Path string to modify in place.void addnode(std::string & path, std::string_view node)Appends a path node to path, inserting a separator if necessary.
path Base path string to modify in place.
node Directory or file name component to append.
std::string makePath(std::string_view base, std::string_view node)Joins a base path and a node component into a single path string.
base Base directory path.
node Directory or file name component to append.
Joined path string.
std::string normalize(std::string_view path)Normalizes a path by resolving . and .. segments and converting separators to the native platform style.
path Path string to normalize.Normalized path string.
std::string transcode(std::string_view path)Transcodes a path to the native platform format. On Windows with ICY_UNICODE defined, converts to the Windows-native wide-to-narrow format. On other platforms, returns the path unchanged.
path Path string to transcode.Transcoded path string.
bool savefile(std::string_view path, const char * data, size_t size, bool whiny)Writes size bytes from data to the file at path, creating or overwriting it.
path Destination file path. Parent directories must already exist.
data Pointer to the data to write.
size Number of bytes to write.
whiny If true, throws a std::runtime_error on failure instead of returning false.
True on success, false on failure (when whiny is false).
| Return | Name | Description |
|---|---|---|
const char * | separator | The platform specific path separator string: "/" on unix and "\" on windows. |
const char | delimiter | The platform specific path separator character: '/' on unix and '' on windows. |
const char * separatorThe platform specific path separator string: "/" on unix and "\" on windows.
const char delimiterThe platform specific path separator character: '/' on unix and '' on windows.