diff --git a/PowerUtils/file.h b/PowerUtils/file.h index 4b59822..8d0f2ae 100644 --- a/PowerUtils/file.h +++ b/PowerUtils/file.h @@ -1,26 +1,28 @@ #pragma once +#include +#include #include -inline std::vector LoadFile(const char* path) +inline std::vector LoadFile(const std::filesystem::path& path) { - std::vector data{}; - auto* stream = fopen(path, "rb"); - if (stream == nullptr) + std::ifstream stream(path, std::ios::binary); + if (!stream.is_open()) { return {}; } - fseek(stream, 0, SEEK_END); - - const auto size = ftell(stream); - - fseek(stream, 0, SEEK_SET); + stream.seekg(0, std::ios::end); + std::streampos size = stream.tellg(); + stream.seekg(0, std::ios::beg); + std::vector data; data.resize(size); - - fread(data.data(), 1, data.size(), stream); - fclose(stream); + stream.read((char *)(data.data()), size); + if (stream.bad()) + { + return {}; + } return data; }