iw4x-client/src/Utils/IO.cpp

95 lines
1.5 KiB
C++
Raw Normal View History

2016-07-11 11:14:58 -04:00
#include "STDInclude.hpp"
namespace Utils
{
namespace IO
{
bool FileExists(std::string file)
{
return std::ifstream(file).good();
}
void WriteFile(std::string file, std::string data)
{
std::ofstream stream(file, std::ios::binary);
if (stream.is_open())
{
stream.write(data.data(), data.size());
stream.close();
}
}
std::string ReadFile(std::string file)
{
std::string buffer;
if (FileExists(file))
{
std::streamsize size = 0;
std::ifstream stream(file, std::ios::binary);
if (!stream.is_open()) return buffer;
stream.seekg(0, std::ios::end);
size = stream.tellg();
stream.seekg(0, std::ios::beg);
if (size > -1)
{
buffer.clear();
buffer.resize((uint32_t)size);
stream.read(const_cast<char*>(buffer.data()), size);
}
stream.close();
}
return buffer;
}
2016-08-31 11:54:08 -04:00
2016-09-04 07:06:44 -04:00
bool CreateDirectory(std::string dir)
2016-08-31 11:54:08 -04:00
{
2016-09-04 07:06:44 -04:00
char opath[MAX_PATH] = { 0 };
2016-08-31 11:54:08 -04:00
char *p;
size_t len;
strncpy_s(opath, dir.data(), sizeof(opath));
len = strlen(opath);
if (opath[len - 1] == L'/')
{
opath[len - 1] = L'\0';
}
for (p = opath; *p; p++)
{
if (*p == L'/' || *p == L'\\')
{
*p = L'\0';
if (_access(opath, 0))
{
2016-09-04 07:06:44 -04:00
if (_mkdir(opath) == -1)
{
return false;
}
2016-08-31 11:54:08 -04:00
}
*p = L'\\';
}
}
if (_access(opath, 0))
{
2016-09-04 07:06:44 -04:00
if (_mkdir(opath) == -1)
{
return false;
}
2016-08-31 11:54:08 -04:00
}
2016-09-04 07:06:44 -04:00
return true;
2016-08-31 11:54:08 -04:00
}
2016-07-11 11:14:58 -04:00
}
}