#pragma once #include #include #include #include #include #include #if __cplusplus >= 201703L #include #endif #include "String.h" class Utils { public: static int max(int a, int b) { return (a > b) ? a : b; } static int min(int a, int b) { return (a > b) ? b : a; } static void Mkdir(const String& path) { #if __cplusplus >= 201703L std::filesystem::create_directory(path.getCharArray()); #else mkdir(path.getCharArray(), 0777); #endif } //https://stackoverflow.com/questions/4568681/using-chmod-in-a-c-program static void Chmod(const String& path) { String command = "chmod 777 " + String::DQuotes(path); system(command.getCharArray()); } //https://stackoverflow.com/questions/230062/whats-the-best-way-to-check-if-a-file-exists-in-c static bool Exists(const String& path) { struct stat buffer; return (stat(path.getCharArray(), &buffer) == 0); } //in seconds static void Sleep(int s) { std::chrono::seconds timespan(s); std::this_thread::sleep_for(timespan); } static void Copy(const String& src, const String& dst) { String command = "cp " + String::DQuotes(src) + " " + String::DQuotes(dst); system(command.getCharArray()); } static time_t getAbsoluteTime() { return time(NULL); } static String getDate() { auto ttime = time(NULL); String res(ctime(&ttime)); return res; } static void ZipFolder(const String& src, const String& dst) { String command = "zip -r " + String::DQuotes(dst) + " " + String::DQuotes(src); system(command.getCharArray()); } };