#include #include #include namespace File { std::string getBasename(const std::string& path) { size_t p = path.find_last_of('/'); if (p == std::string::npos) return path; return path.substr(p + 1); } std::string getExtension(const std::string& path) { std::string base_name = getBasename(path); size_t p = base_name.find_first_of('.'); if (p == std::string::npos) return ""; return base_name.substr(p + 1); } std::vector read(const std::string& path) { std::vector buf; FILE *fd = fopen(path.c_str(), "rb"); if (fd) { fseek(fd, 0, SEEK_END); buf.resize(ftell(fd)); rewind(fd); fread(&buf[0], 1, buf.size(), fd); fclose(fd); } return buf; } };