summaryrefslogtreecommitdiff
path: root/drivers/windows
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/windows')
-rw-r--r--drivers/windows/dir_access_windows.cpp33
-rw-r--r--drivers/windows/dir_access_windows.h1
2 files changed, 34 insertions, 0 deletions
diff --git a/drivers/windows/dir_access_windows.cpp b/drivers/windows/dir_access_windows.cpp
index 30f6ff6d8c..aacd02ca24 100644
--- a/drivers/windows/dir_access_windows.cpp
+++ b/drivers/windows/dir_access_windows.cpp
@@ -303,6 +303,39 @@ bool DirAccessWindows::file_exists(String p_file) {
return false;
}
+bool DirAccessWindows::dir_exists(String p_dir) {
+
+ GLOBAL_LOCK_FUNCTION
+
+ if (!p_dir.is_abs_path())
+ p_dir=get_current_dir()+"/"+p_dir;
+ p_dir=fix_path(p_dir);
+
+ p_dir.replace("/","\\");
+
+ if (unicode) {
+
+ DWORD fileAttr;
+
+ fileAttr = GetFileAttributesW(p_dir.c_str());
+ if (0xFFFFFFFF == fileAttr)
+ return false;
+
+ return (fileAttr&FILE_ATTRIBUTE_DIRECTORY);
+
+ } else {
+ DWORD fileAttr;
+
+ fileAttr = GetFileAttributesA(p_dir.ascii().get_data());
+ if (0xFFFFFFFF == fileAttr)
+ return false;
+ return (fileAttr&FILE_ATTRIBUTE_DIRECTORY);
+
+ }
+
+ return false;
+}
+
Error DirAccessWindows::rename(String p_path,String p_new_path) {
p_path=fix_path(p_path);
diff --git a/drivers/windows/dir_access_windows.h b/drivers/windows/dir_access_windows.h
index 926497c583..36530ba9b3 100644
--- a/drivers/windows/dir_access_windows.h
+++ b/drivers/windows/dir_access_windows.h
@@ -74,6 +74,7 @@ public:
virtual bool file_exists(String p_file);
+ virtual bool dir_exists(String p_dir);
virtual Error make_dir(String p_dir);