#include "../include/FileUtil.hpp" #include "../include/env.hpp" #include using namespace std; namespace dchat { StringView getFileContent(const boost::filesystem::path &filepath) { #if OS_FAMILY == OS_FAMILY_POSIX FILE *file = fopen(filepath.c_str(), "rb"); #else FILE *file = _wfopen(filepath.c_str(), L"rb"); #endif if(!file) { int error = errno; string errMsg = "Failed to open file: "; errMsg += filepath.string(); errMsg += "; reason: "; errMsg += strerror(error); throw FileException(errMsg); } fseek(file, 0, SEEK_END); size_t fileSize = ftell(file); fseek(file, 0, SEEK_SET); char *fileData = new char[fileSize]; fread(fileData, 1, fileSize, file); fclose(file); return { fileData, fileSize }; } }