#include "file.h" #include "minicc.h" #include namespace fs = std::filesystem; std::vector File::getFile(const fs::path& filename) { std::ifstream file(filename.string(), std::ios::in | std::ios::binary | std::ios::ate); if (file.is_open()) { std::ifstream::pos_type fileSize = file.tellg(); file.seekg(0, std::ios::beg); std::vector bytes(fileSize, 0); file.read(reinterpret_cast(bytes.data()), fileSize); return bytes; } else { throw std::runtime_error("Opening "s + filename.string() + " for reading"); } } void File::setFile(const fs::path& filename, const std::string& s) { File::setFile(filename, s.data(), s.size()); } void File::setFile(const fs::path& filename, const char* data, size_t size) { std::ofstream file(filename.string(), std::ios::out | std::ios::binary); if (file.is_open()) { file.write(data, size); } else { throw std::runtime_error("Opening "s + filename.string() + " for writing"); } } void File::setFile(const fs::path& filename, const std::vector& data) { File::setFile(filename, reinterpret_cast(data.data()), data.size()); }