34 #include "Utilities/STL/MxString.h" 38 using FilePath = std::filesystem::path;
39 using FileStream = std::fstream;
40 using FileSystemTime = std::filesystem::file_time_type;
52 FileStream fileStream;
67 using FileData = MxString;
78 File(
const FilePath& path,
int mode = FileMode::READ);
84 File(
const MxString& path,
int mode = FileMode::READ);
90 File(
const char* path,
int mode = FileMode::READ);
93 File& operator=(
const File&) =
default;
111 void Open(FilePath path,
int mode = FileMode::READ);
117 void Open(
const MxString& path,
int mode = FileMode::READ);
123 void Open(
const char* path,
int mode = FileMode::READ);
137 const FilePath&
GetPath()
const;
175 static bool Exists(
const FilePath& path);
181 static bool Exists(
const MxString& path);
187 static bool Exists(
const char* path);
193 static bool IsFile(
const MxString& path);
199 static bool IsFile(
const FilePath& path);
205 static bool IsFile(
const char* path);
246 static void CreateDirectory(
const FilePath& path);
251 static void CreateDirectory(
const MxString& path);
256 static void CreateDirectory(
const char* path);
262 void WriteBytes(
const uint8_t* bytes,
size_t size);
268 this->fileStream >> std::forward<T>(value);
275 this->fileStream << std::forward<T>(value);
279 inline auto ToMxString(
const FilePath& path)
281 return ToMxString(path.string());
284 inline auto ToFilePath(
const MxString& str)
286 return FilePath(str.c_str());
FileStream & GetStream()
Definition: File.cpp:62
FileData ReadAllText()
Definition: File.cpp:102
const FilePath & GetPath() const
Definition: File.cpp:113
bool IsOpen() const
Definition: File.cpp:67
File & operator<<(T &&value)
Definition: File.h:273
static bool IsFile(const MxString &path)
Definition: File.cpp:148
void Open(FilePath path, int mode=FileMode::READ)
Definition: File.cpp:72
static bool Exists(const FilePath &path)
Definition: File.cpp:133
static bool IsDirectory(const MxString &path)
Definition: File.cpp:163
FileMode
Definition: File.h:61
File & operator>>(T &&value)
Definition: File.h:266
Definition: Application.cpp:49
static FileSystemTime LastModifiedTime(const FilePath &path)
Definition: File.cpp:178