Added read write functions to file class

main
anulax1225 ago%!(EXTRA string=1 year)
parent ec69296691
commit 1905e46484
  1. 23
      src/bakatools/file_system/file.cpp
  2. 4
      src/bakatools/file_system/file.h

@ -10,4 +10,27 @@ namespace Bk::Tools {
{ {
if (exists()) std::filesystem::copy_file(ent.path(), path, opt); if (exists()) std::filesystem::copy_file(ent.path(), path, opt);
} }
DataStream File::read(int size)
{
std::vector<char> data;
if(exists())
{
std::ifstream ifrm(ent.path(), std::ios::binary);
data.resize(size);
ifrm.read(data.data(), data.size());
return DataStream(data);
}
}
bool File::write(DataStream stream)
{
try
{
std::ofstream ofrm(ent.path(), std::ios::binary);
ofrm.write(stream.payload.data(), stream.payload.size());
return true;
} catch return false;
}
} }

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <bakatoolspch.h> #include <bakatoolspch.h>
#include <bakatools/container/data_stream.h>
#include "dir_entry.h" #include "dir_entry.h"
namespace Bk::Tools { namespace Bk::Tools {
@ -19,6 +20,9 @@ namespace Bk::Tools {
int remove() override; int remove() override;
void copy(std::string path, CopyOption opt = CopyOption::overwrite_existing) override; void copy(std::string path, CopyOption opt = CopyOption::overwrite_existing) override;
DataStream read(int size = size());
bool write(DataStream stream);
BK_DIR_ENTRY_TYPE(regular) BK_DIR_ENTRY_TYPE(regular)
}; };
} }
Loading…
Cancel
Save