#ifndef FILEFUNCTIONS_H #define FILEFUNCTIONS_H #include #include #include namespace filefunctions { enum STATUS_CODE { SC_SUCCESS = 0, SC_INVALID_WD, // No or invalid working dir SC_INVALID_PATH, SC_INVALID_DESTINATION, SC_DISK_FULL, SC_DOES_NOT_EXIST, SC_ALREADY_EXISTS, SC_READ_ONLY, SC_IS_DIRECTORY, SC_IS_NOT_DIRECTORY, SC_OTHER_FAILIURE // And so on }; enum COMMAND_FLAGS { CF_NONE = 0, CF_FORCE = 1, CF_RELATIVE = 2, CF_RECURSIVE = 4, }; struct File_Struct { std::string path; std::string file_ending; tm *modified = nullptr; tm *taken = nullptr; }; COMMAND_FLAGS operator|(COMMAND_FLAGS a, COMMAND_FLAGS b); extern std::string filefunctions_wd; STATUS_CODE cd (std::string const &path = "", COMMAND_FLAGS flags = CF_RELATIVE); STATUS_CODE mv (std::string const &src, std::string const &dest, COMMAND_FLAGS flags = CF_NONE); STATUS_CODE mkdir (std::string const &path, COMMAND_FLAGS flags = CF_NONE); STATUS_CODE rm (std::string const &path, COMMAND_FLAGS flags = CF_NONE); std::string pwd (void); STATUS_CODE ls (std::string path, std::queue &content, COMMAND_FLAGS flags = CF_RELATIVE); } #endif // FILEFUNCTIONS_H