fs
fs
Cross-platform filesystem path and file helpers.
Functions
| 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. |
filename
std::string filename(std::string_view path)Returns the file name and extension part of the given path.
Parameters
pathFilesystem path to parse.
Returns
Filename component including extension (e.g. "file.txt").
basename
std::string basename(std::string_view path)Returns the file name without its extension.
Parameters
pathFilesystem path to parse.
Returns
Filename without the extension (e.g. "file").
dirname
std::string dirname(std::string_view path)Returns the directory part of the path.
Parameters
pathFilesystem path to parse.
Returns
Directory component including trailing separator (e.g. "/usr/local/").
extname
std::string extname(std::string_view path, bool includeDot)Returns the file extension part of the path.
Parameters
pathFilesystem path to parse.includeDotIf true (default), includes the leading dot (e.g. ".txt"); if false, the dot is stripped.
Returns
Extension string, or empty if the path has no extension.
exists
bool exists(std::string_view path)Returns true if the file or directory exists.
Parameters
pathPath to check.
Returns
True if the path exists on the filesystem.
isdir
bool isdir(std::string_view path)Returns true if the path refers to a directory.
Parameters
pathPath to check.
Returns
True if the path exists and is a directory.
filesize
std::int64_t filesize(std::string_view path)Returns the size in bytes of the given file.
Parameters
pathPath to the file.
Returns
File size in bytes, or -1 if the file does not exist.
readdir
void readdir(std::string_view path, std::vector< std::string > & res)Populates res with the names of all entries in the given directory.
Parameters
pathPath to the directory to read.resVector to receive the list of entry names.
mkdir
void mkdir(std::string_view path, int mode)Creates a single directory.
Parameters
pathPath of the directory to create.modePermission bits (default: 0755). Ignored on Windows.
mkdirr
void mkdirr(std::string_view path, int mode)Creates a directory and all missing parent directories.
Parameters
pathPath of the directory hierarchy to create.modePermission bits (default: 0755). Ignored on Windows.
rmdir
void rmdir(std::string_view path)Removes an empty directory.
Parameters
pathPath of the directory to remove.
unlink
void unlink(std::string_view path)Deletes a file.
Parameters
pathPath of the file to delete.
rename
void rename(std::string_view path, std::string_view target)Renames or moves the given file to the target path.
Parameters
pathSource file path.targetDestination file path.
addsep
void addsep(std::string & path)Appends the platform-specific path separator to path if not already present.
Parameters
pathPath string to modify in place.
addnode
void addnode(std::string & path, std::string_view node)Appends a path node to path, inserting a separator if necessary.
Parameters
pathBase path string to modify in place.nodeDirectory or file name component to append.
makePath
std::string makePath(std::string_view base, std::string_view node)Joins a base path and a node component into a single path string.
Parameters
baseBase directory path.nodeDirectory or file name component to append.
Returns
Joined path string.
normalize
std::string normalize(std::string_view path)Normalizes a path by resolving . and .. segments and converting separators to the native platform style.
Parameters
pathPath string to normalize.
Returns
Normalized path string.
transcode
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.
Parameters
pathPath string to transcode.
Returns
Transcoded path string.
savefile
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.
Parameters
pathDestination file path. Parent directories must already exist.dataPointer to the data to write.sizeNumber of bytes to write.whinyIf true, throws astd::runtime_erroron failure instead of returning false.
Returns
True on success, false on failure (when whiny is false).
Variables
| 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. |
separator
const char * separatorThe platform specific path separator string: "/" on unix and "\" on windows.
delimiter
const char delimiterThe platform specific path separator character: '/' on unix and '' on windows.
