FileSystem: Add Error to file writing
This commit is contained in:
parent
29b3fa2b95
commit
eba0794b4f
|
@ -1181,26 +1181,32 @@ std::optional<std::string> FileSystem::ReadFileToString(std::FILE* fp)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FileSystem::WriteBinaryFile(const char* filename, const void* data, size_t data_length)
|
bool FileSystem::WriteBinaryFile(const char* filename, const void* data, size_t data_length, Error* error)
|
||||||
{
|
{
|
||||||
ManagedCFilePtr fp = OpenManagedCFile(filename, "wb");
|
ManagedCFilePtr fp = OpenManagedCFile(filename, "wb", error);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (data_length > 0 && std::fwrite(data, 1u, data_length, fp.get()) != data_length)
|
if (data_length > 0 && std::fwrite(data, 1u, data_length, fp.get()) != data_length)
|
||||||
|
{
|
||||||
|
Error::SetErrno(error, "fwrite() failed: ", errno);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FileSystem::WriteStringToFile(const char* filename, std::string_view sv)
|
bool FileSystem::WriteStringToFile(const char* filename, std::string_view sv, Error* error)
|
||||||
{
|
{
|
||||||
ManagedCFilePtr fp = OpenManagedCFile(filename, "wb");
|
ManagedCFilePtr fp = OpenManagedCFile(filename, "wb", error);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (sv.length() > 0 && std::fwrite(sv.data(), 1u, sv.length(), fp.get()) != sv.length())
|
if (sv.length() > 0 && std::fwrite(sv.data(), 1u, sv.length(), fp.get()) != sv.length())
|
||||||
|
{
|
||||||
|
Error::SetErrno(error, "fwrite() failed: ", errno);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,8 +145,8 @@ std::optional<std::vector<u8>> ReadBinaryFile(const char* filename, Error* error
|
||||||
std::optional<std::vector<u8>> ReadBinaryFile(std::FILE* fp);
|
std::optional<std::vector<u8>> ReadBinaryFile(std::FILE* fp);
|
||||||
std::optional<std::string> ReadFileToString(const char* filename, Error* error = nullptr);
|
std::optional<std::string> ReadFileToString(const char* filename, Error* error = nullptr);
|
||||||
std::optional<std::string> ReadFileToString(std::FILE* fp);
|
std::optional<std::string> ReadFileToString(std::FILE* fp);
|
||||||
bool WriteBinaryFile(const char* filename, const void* data, size_t data_length);
|
bool WriteBinaryFile(const char* filename, const void* data, size_t data_length, Error* error = nullptr);
|
||||||
bool WriteStringToFile(const char* filename, std::string_view sv);
|
bool WriteStringToFile(const char* filename, std::string_view sv, Error* error = nullptr);
|
||||||
|
|
||||||
/// creates a directory in the local filesystem
|
/// creates a directory in the local filesystem
|
||||||
/// if the directory already exists, the return value will be true.
|
/// if the directory already exists, the return value will be true.
|
||||||
|
|
Loading…
Reference in New Issue