diff options
author | dec05eba <dec05eba@protonmail.com> | 2017-12-30 04:32:49 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2017-12-30 05:08:10 +0100 |
commit | 98ad7dd049a366e21d60a34548736a3c8ef72877 (patch) | |
tree | 45e34eb02f6be9f9130a870a19ef1533e24bf343 /include/FileUtil.hpp | |
parent | 1f583ebb6e3973c992d59886659bf53ff87f41de (diff) |
Add support for windows (ugly fast solution)
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 |