aboutsummaryrefslogtreecommitdiff
path: root/include/FileUtil.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2017-12-30 04:32:49 +0100
committerdec05eba <dec05eba@protonmail.com>2017-12-30 05:08:10 +0100
commit98ad7dd049a366e21d60a34548736a3c8ef72877 (patch)
tree45e34eb02f6be9f9130a870a19ef1533e24bf343 /include/FileUtil.hpp
parent1f583ebb6e3973c992d59886659bf53ff87f41de (diff)
Add support for windows (ugly fast solution)
Diffstat (limited to 'include/FileUtil.hpp')
-rw-r--r--include/FileUtil.hpp44
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