40 lines
778 B
C++
40 lines
778 B
C++
|
|
#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;
|
|
}
|
|
};
|