|
|
@ -824,13 +824,12 @@ size_t WriteStringToFile(bool text_file, const std::string &str, const char *fil
|
|
|
|
|
|
|
|
|
|
|
|
size_t ReadFileToString(bool text_file, const char *filename, std::string &str)
|
|
|
|
size_t ReadFileToString(bool text_file, const char *filename, std::string &str)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
FileUtil::IOFile file(filename, text_file ? "r" : "rb");
|
|
|
|
IOFile file(filename, text_file ? "r" : "rb");
|
|
|
|
auto const f = file.GetHandle();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!f)
|
|
|
|
if (!file)
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
str.resize(static_cast<u32>(GetSize(f)));
|
|
|
|
str.resize(static_cast<u32>(file.GetSize()));
|
|
|
|
return file.ReadArray(&str[0], str.size());
|
|
|
|
return file.ReadArray(&str[0], str.size());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -877,15 +876,10 @@ void SplitFilename83(const std::string& filename, std::array<char, 9>& short_nam
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
IOFile::IOFile()
|
|
|
|
IOFile::IOFile()
|
|
|
|
: m_file(nullptr), m_good(true)
|
|
|
|
{
|
|
|
|
{}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
IOFile::IOFile(std::FILE* file)
|
|
|
|
|
|
|
|
: m_file(file), m_good(true)
|
|
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IOFile::IOFile(const std::string& filename, const char openmode[])
|
|
|
|
IOFile::IOFile(const std::string& filename, const char openmode[])
|
|
|
|
: m_file(nullptr), m_good(true)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Open(filename, openmode);
|
|
|
|
Open(filename, openmode);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -896,7 +890,6 @@ IOFile::~IOFile()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
IOFile::IOFile(IOFile&& other)
|
|
|
|
IOFile::IOFile(IOFile&& other)
|
|
|
|
: m_file(nullptr), m_good(true)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Swap(other);
|
|
|
|
Swap(other);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -935,26 +928,12 @@ bool IOFile::Close()
|
|
|
|
return m_good;
|
|
|
|
return m_good;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
std::FILE* IOFile::ReleaseHandle()
|
|
|
|
u64 IOFile::GetSize() const
|
|
|
|
{
|
|
|
|
|
|
|
|
std::FILE* const ret = m_file;
|
|
|
|
|
|
|
|
m_file = nullptr;
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void IOFile::SetHandle(std::FILE* file)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Close();
|
|
|
|
|
|
|
|
Clear();
|
|
|
|
|
|
|
|
m_file = file;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u64 IOFile::GetSize()
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (IsOpen())
|
|
|
|
if (IsOpen())
|
|
|
|
return FileUtil::GetSize(m_file);
|
|
|
|
return FileUtil::GetSize(m_file);
|
|
|
|
else
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool IOFile::Seek(s64 off, int origin)
|
|
|
|
bool IOFile::Seek(s64 off, int origin)
|
|
|
@ -965,12 +944,12 @@ bool IOFile::Seek(s64 off, int origin)
|
|
|
|
return m_good;
|
|
|
|
return m_good;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
u64 IOFile::Tell()
|
|
|
|
u64 IOFile::Tell() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (IsOpen())
|
|
|
|
if (IsOpen())
|
|
|
|
return ftello(m_file);
|
|
|
|
return ftello(m_file);
|
|
|
|
else
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool IOFile::Flush()
|
|
|
|
bool IOFile::Flush()
|
|
|
|