fileManipulation.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "fileManipulation.h"
  2. #include <fstream>
  3. namespace pika
  4. {
  5. size_t getFileSize(const char *name)
  6. {
  7. std::ifstream f(name, std::ios::binary);
  8. if (!f.is_open()) { return 0; }
  9. f.seekg(0, std::ios_base::end);
  10. size_t size = f.tellg();
  11. f.close();
  12. return size;
  13. }
  14. size_t readEntireFile(const char *name, void *buffer, size_t s, size_t from)
  15. {
  16. std::ifstream f(name, std::ios::binary);
  17. if (!f.is_open()) { return 0; }
  18. f.seekg(from);
  19. f.read((char*)buffer, s);
  20. size_t pos = f.tellg();
  21. f.close();
  22. return pos;
  23. }
  24. bool writeEntireFile(const char *name, void *buffer, size_t s)
  25. {
  26. std::ofstream f(name, std::ios::binary);
  27. if (f.is_open())
  28. {
  29. f.write((char *)buffer, s);
  30. f.close();
  31. return true;
  32. }
  33. else
  34. {
  35. return false;
  36. }
  37. }
  38. bool appendToFile(const char *name, void *buffer, size_t s)
  39. {
  40. std::ofstream f(name, std::ios::binary | std::ios::app);
  41. if (f.is_open())
  42. {
  43. f.write((char *)buffer, s);
  44. f.close();
  45. return true;
  46. }
  47. else
  48. {
  49. return false;
  50. }
  51. }
  52. void deleteFile(const char *f)
  53. {
  54. }
  55. };