
#include <string.h>
#include <stdio.h>
#include <Spectre/System/File.h>

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<unsigned char> read(const std::string& path) {

		std::vector<unsigned char> 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;
	}
};
