summaryrefslogtreecommitdiff
path: root/drivers/unix
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/unix')
-rw-r--r--drivers/unix/dir_access_unix.cpp20
-rw-r--r--drivers/unix/dir_access_unix.h4
2 files changed, 23 insertions, 1 deletions
diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp
index fff86c5a7e..452d791d96 100644
--- a/drivers/unix/dir_access_unix.cpp
+++ b/drivers/unix/dir_access_unix.cpp
@@ -81,6 +81,26 @@ bool DirAccessUnix::file_exists(String p_file) {
}
+bool DirAccessUnix::dir_exists(String p_dir) {
+
+ GLOBAL_LOCK_FUNCTION
+
+
+ if (p_dir.is_rel_path())
+ p_dir=current_dir+"/"+p_dir;
+ else
+ p_dir=fix_path(p_dir);
+
+ struct stat flags;
+ bool success = (stat(p_dir.utf8().get_data(),&flags)==0);
+
+ if (success && S_ISDIR(flags.st_mode))
+ return true;
+
+ return false;
+
+}
+
uint64_t DirAccessUnix::get_modified_time(String p_file) {
if (p_file.is_rel_path())
diff --git a/drivers/unix/dir_access_unix.h b/drivers/unix/dir_access_unix.h
index 7ede4fc31c..119cb5c3f4 100644
--- a/drivers/unix/dir_access_unix.h
+++ b/drivers/unix/dir_access_unix.h
@@ -66,7 +66,9 @@ public:
virtual String get_current_dir(); ///< return current dir location
virtual Error make_dir(String p_dir);
- virtual bool file_exists(String p_file);
+ virtual bool file_exists(String p_file);
+ virtual bool dir_exists(String p_dir);
+
virtual uint64_t get_modified_time(String p_file);