diff options
Diffstat (limited to 'src/sys')
-rw-r--r-- | src/sys/sys.cc | 14 | ||||
-rw-r--r-- | src/sys/sys.h | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/sys/sys.cc b/src/sys/sys.cc index da9b08d..9526166 100644 --- a/src/sys/sys.cc +++ b/src/sys/sys.cc @@ -27,6 +27,20 @@ namespace sys { +bool isdirectory(std::string const &path) +{ + struct stat path_stat; + memset(&path_stat, 0, sizeof(path_stat)); + if (stat(path.c_str(), &path_stat) != 0) + return false; + + if (path_stat.st_mode & S_IFDIR) { + return true; + } + + return false; +} + void mkdir(std::string const &path) { #ifdef _WIN32 diff --git a/src/sys/sys.h b/src/sys/sys.h index e455b82..66040f0 100644 --- a/src/sys/sys.h +++ b/src/sys/sys.h @@ -21,6 +21,9 @@ namespace sys { typedef void (* signalfunc)(int signum); +/// check if a path exists and if it is a directory +bool isdirectory(std::string const &path); + /// create a directory void mkdir(std::string const &path); |