25#ifndef TGUI_FILESYSTEM_HPP
26#define TGUI_FILESYSTEM_HPP
28#include <TGUI/String.hpp>
34#ifdef TGUI_USE_STD_FILESYSTEM
71#ifdef TGUI_USE_STD_FILESYSTEM
79 template <
typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>,
int> = 0>
80 explicit Path(
const PathType& path) :
153#ifdef TGUI_SYSTEM_WINDOWS
159#ifdef TGUI_USE_STD_FILESYSTEM
163 operator const std::filesystem::path&()
const
187 return *
this /
Path(path);
208 return *
this /=
Path(path);
232#ifdef TGUI_USE_STD_FILESYSTEM
233 std::filesystem::path m_path;
235 std::vector<String> m_parts;
237 bool m_absolute =
false;
248 bool directory =
false;
249 std::uintmax_t fileSize = 0;
250 std::time_t modificationTime = 0;
Object to represent paths on a filesystem.
Definition Filesystem.hpp:56
bool isEmpty() const
Check if this object is empty.
std::string asNativeString() const
Returns the path as a string, but with a string type and contents that depends on the OS.
bool isRelative() const
Checks whether the path is relative.
Path()=default
Default constructor that creates an empty path object.
String asString() const
Returns the path as a string.
Path getParentPath() const
Returns to path to the parent directory.
Path operator/(const Path &path) const
Returns a new path that consists of this object joined with another path.
bool operator!=(const Path &other) const
Checks whether the paths are not equal.
Path & operator/=(const Path &path)
Joins this object with another path.
Path & operator/=(const String &path)
Joins this object with another path.
Definition Filesystem.hpp:206
Path(const String &path)
Constructor that creates a Path object from the given path string.
String getFilename() const
Returns to filename component of the path (where the path consists of getParentPath() / getFilename()...
bool isAbsolute() const
Checks whether the path is absolute.
bool operator==(const Path &other) const
Checks whether the paths are equal.
Path operator/(const String &path) const
Returns a new path that consists of this object joined with another path.
Definition Filesystem.hpp:185
Path getNormalForm() const
Returns the lexically normal form of the path (path with '.' and '..' resolved)
Helper functionality for filesystem access.
Definition Filesystem.hpp:49
static bool directoryExists(const Path &path)
Checks if a directory exists.
static Path getLocalDataDirectory()
Returns the directory to store application data.
static bool fileExists(const String &path)
Checks if a file exists.
Definition Filesystem.hpp:290
static bool directoryExists(const String &path)
Checks if a directory exists.
Definition Filesystem.hpp:269
static std::vector< FileInfo > listFilesInDirectory(const Path &path)
Returns a list of all files and folders inside a given directory.
static bool fileExists(const Path &path)
Checks if a file exists.
static Path getCurrentWorkingDirectory()
Returns the current working directory.
static bool createDirectory(const Path &path)
Create a directory.
static Path getHomeDirectory()
Returns the home directory.
static bool createDirectory(const String &path)
Create a directory.
Definition Filesystem.hpp:315
Wrapper class to store strings.
Definition String.hpp:94
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:36
Information about a file or directory, used to return data from the listFilesInDirectory function.
Definition Filesystem.hpp:245