From 98ad7dd049a366e21d60a34548736a3c8ef72877 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 30 Dec 2017 04:32:49 +0100 Subject: Add support for windows (ugly fast solution) --- include/FileUtil.hpp | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) (limited to 'include/FileUtil.hpp') 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 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; 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 getFileContent(const char *filepath); - Result fileOverwrite(const char *filepath, StringView data); - const char* getHomeDir(); - Result 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 getFileContent(const _tinydir_char_t *filepath); + Result fileOverwrite(const _tinydir_char_t *filepath, StringView data); + Result getHomeDir(); + Result getCwd(); // Note: Will not delete created directories if this operation fails for some reason - Result createDirectoryRecursive(const char *path); - Result getRealPath(const char *path); + Result createDirectoryRecursive(const _tinydir_char_t *path); + Result getRealPath(const _tinydir_char_t *path); } #endif //SIBS_FILEUTIL_HPP -- cgit v1.2.3