filefunctions.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef FILEFUNCTIONS_H
  2. #define FILEFUNCTIONS_H
  3. #include <string>
  4. #include <ctime>
  5. #include <queue>
  6. namespace filefunctions
  7. {
  8. enum STATUS_CODE
  9. {
  10. SC_SUCCESS = 0,
  11. SC_INVALID_WD, // No or invalid working dir
  12. SC_INVALID_PATH,
  13. SC_INVALID_DESTINATION,
  14. SC_DISK_FULL,
  15. SC_DOES_NOT_EXIST,
  16. SC_ALREADY_EXISTS,
  17. SC_READ_ONLY,
  18. SC_IS_DIRECTORY,
  19. SC_IS_NOT_DIRECTORY,
  20. SC_OTHER_FAILIURE
  21. // And so on
  22. };
  23. enum COMMAND_FLAGS
  24. {
  25. CF_NONE = 0,
  26. CF_FORCE = 1,
  27. CF_RELATIVE = 2,
  28. CF_RECURSIVE = 4,
  29. };
  30. struct File_Struct
  31. {
  32. std::string path;
  33. std::string file_ending;
  34. tm *modified = nullptr;
  35. tm *taken = nullptr;
  36. };
  37. COMMAND_FLAGS operator|(COMMAND_FLAGS a, COMMAND_FLAGS b);
  38. extern std::string filefunctions_wd;
  39. STATUS_CODE cd (std::string const &path = "", COMMAND_FLAGS flags = CF_RELATIVE);
  40. STATUS_CODE mv (std::string const &src, std::string const &dest, COMMAND_FLAGS flags = CF_NONE);
  41. STATUS_CODE mkdir (std::string const &path, COMMAND_FLAGS flags = CF_NONE);
  42. STATUS_CODE rm (std::string const &path, COMMAND_FLAGS flags = CF_NONE);
  43. std::string pwd (void);
  44. STATUS_CODE ls (std::string path, std::queue<File_Struct> &content, COMMAND_FLAGS flags = CF_RELATIVE);
  45. }
  46. #endif // FILEFUNCTIONS_H