25#ifndef TGUI_FILESYSTEM_HPP
26#define TGUI_FILESYSTEM_HPP
28#include <TGUI/String.hpp>
30#if !TGUI_EXPERIMENTAL_USE_STD_MODULE
35 #ifdef TGUI_USE_STD_FILESYSTEM
42TGUI_MODULE_EXPORT
namespace tgui
73#ifdef TGUI_USE_STD_FILESYSTEM
81 template <
typename PathType, std::enable_if_t<std::is_same_v<PathType, std::filesystem::path>,
int> = 0>
82 explicit Path(
const PathType& path) :
155#ifdef TGUI_SYSTEM_WINDOWS
156 TGUI_NODISCARD std::wstring asNativeString()
const;
161#ifdef TGUI_USE_STD_FILESYSTEM
165 operator const std::filesystem::path&()
const
189 return *
this /
Path(path);
210 return *
this /=
Path(path);
234#ifdef TGUI_USE_STD_FILESYSTEM
235 std::filesystem::path m_path;
237 std::vector<String> m_parts;
239 bool m_absolute =
false;
250 bool directory =
false;
251 std::uintmax_t fileSize = 0;
252 std::time_t modificationTime = 0;
273 return directoryExists(
Path{path});
294 return fileExists(
Path{path});
319 return createDirectory(
Path{path});
Object to represent paths on a filesystem.
Definition Filesystem.hpp:58
TGUI_NODISCARD std::string asNativeString() const
Returns the path as a string, but with a string type and contents that depends on the OS.
TGUI_NODISCARD bool operator!=(const Path &other) const
Checks whether the paths are not equal.
TGUI_NODISCARD bool isAbsolute() const
Checks whether the path is absolute.
Path()=default
Default constructor that creates an empty path object.
TGUI_NODISCARD bool operator==(const Path &other) const
Checks whether the paths are equal.
TGUI_NODISCARD bool isEmpty() const
Check if this object is empty.
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:208
Path(const String &path)
Constructor that creates a Path object from the given path string.
TGUI_NODISCARD Path operator/(const String &path) const
Returns a new path that consists of this object joined with another path.
Definition Filesystem.hpp:187
TGUI_NODISCARD Path getParentPath() const
Returns to path to the parent directory.
TGUI_NODISCARD String asString() const
Returns the path as a string.
TGUI_NODISCARD Path getNormalForm() const
Returns the lexically normal form of the path (path with '.' and '..' resolved)
TGUI_NODISCARD bool isRelative() const
Checks whether the path is relative.
TGUI_NODISCARD Path operator/(const Path &path) const
Returns a new path that consists of this object joined with another path.
TGUI_NODISCARD String getFilename() const
Returns to filename component of the path (where the path consists of getParentPath() / getFilename()...
Helper functionality for filesystem access.
Definition Filesystem.hpp:51
static TGUI_NODISCARD std::vector< FileInfo > listFilesInDirectory(const Path &path)
Returns a list of all files and folders inside a given directory.
static TGUI_NODISCARD Path getLocalDataDirectory()
Returns the directory to store application data.
static TGUI_NODISCARD bool fileExists(const String &path)
Checks if a file exists.
Definition Filesystem.hpp:292
static bool createDirectory(const Path &path)
Create a directory.
static TGUI_NODISCARD bool fileExists(const Path &path)
Checks if a file exists.
static TGUI_NODISCARD Path getHomeDirectory()
Returns the home directory.
static TGUI_NODISCARD bool directoryExists(const Path &path)
Checks if a directory exists.
static bool createDirectory(const String &path)
Create a directory.
Definition Filesystem.hpp:317
static TGUI_NODISCARD Path getCurrentWorkingDirectory()
Returns the current working directory.
static TGUI_NODISCARD bool directoryExists(const String &path)
Checks if a directory exists.
Definition Filesystem.hpp:271
Wrapper class to store strings.
Definition String.hpp:96
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:38
Information about a file or directory, used to return data from the listFilesInDirectory function.
Definition Filesystem.hpp:247