diff options
Diffstat (limited to 'include/FileUtil.hpp')
-rw-r--r-- | include/FileUtil.hpp | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/include/FileUtil.hpp b/include/FileUtil.hpp index 5d1594a..89eaa84 100644 --- a/include/FileUtil.hpp +++ b/include/FileUtil.hpp @@ -1,13 +1,37 @@ #ifndef SIBS_FILEUTIL_HPP #define SIBS_FILEUTIL_HPP +#ifndef UNICODE +#define UNICODE +#endif + +#ifndef _UNICODE +#define _UNICODE +#endif + +#include "env.hpp" #include "../external/tinydir.h" +#include "../external/utf8/checked.h" #include "Result.hpp" #include "StringView.hpp" #include <functional> namespace sibs { + using FileString = std::basic_string<_tinydir_char_t, std::char_traits<_tinydir_char_t>, std::allocator<_tinydir_char_t>>; + +#if OS_FAMILY == OS_FAMILY_POSIX +#define toUtf8(input) input + FileString toFileString(const std::string &utf8Str); +#else + std::string toUtf8(const sibs::FileString &input); + std::string toUtf8(const TCHAR *input); + FileString utf8To16(const StringView &utf8Str); + FileString utf8To16(const std::string &utf8Str); + FileString toFileString(const std::string &utf8Str); + FileString getLastErrorAsString(); +#endif + using FileWalkCallbackFunc = std::function<void(tinydir_file*)>; enum class FileType @@ -17,17 +41,17 @@ namespace sibs DIRECTORY }; - FileType getFileType(const char *path); - void walkDir(const char *directory, FileWalkCallbackFunc callbackFunc); - void walkDirFiles(const char *directory, FileWalkCallbackFunc callbackFunc); - void walkDirFilesRecursive(const char *directory, FileWalkCallbackFunc callbackFunc); - Result<StringView> getFileContent(const char *filepath); - Result<bool> fileOverwrite(const char *filepath, StringView data); - const char* getHomeDir(); - Result<std::string> getCwd(); + FileType getFileType(const _tinydir_char_t *path); + void walkDir(const _tinydir_char_t *directory, FileWalkCallbackFunc callbackFunc); + void walkDirFiles(const _tinydir_char_t *directory, FileWalkCallbackFunc callbackFunc); + void walkDirFilesRecursive(const _tinydir_char_t *directory, FileWalkCallbackFunc callbackFunc); + Result<StringView> getFileContent(const _tinydir_char_t *filepath); + Result<bool> fileOverwrite(const _tinydir_char_t *filepath, StringView data); + Result<FileString> getHomeDir(); + Result<FileString> getCwd(); // Note: Will not delete created directories if this operation fails for some reason - Result<bool> createDirectoryRecursive(const char *path); - Result<std::string> getRealPath(const char *path); + Result<bool> createDirectoryRecursive(const _tinydir_char_t *path); + Result<FileString> getRealPath(const _tinydir_char_t *path); } #endif //SIBS_FILEUTIL_HPP |