summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/dir_access_jandroid.cpp26
-rw-r--r--platform/android/dir_access_jandroid.h1
2 files changed, 27 insertions, 0 deletions
diff --git a/platform/android/dir_access_jandroid.cpp b/platform/android/dir_access_jandroid.cpp
index 0c8a5785f8..f32e16e7d8 100644
--- a/platform/android/dir_access_jandroid.cpp
+++ b/platform/android/dir_access_jandroid.cpp
@@ -179,6 +179,32 @@ bool DirAccessJAndroid::file_exists(String p_file){
return exists;
}
+bool DirAccessJAndroid::dir_exists(String p_dir) {
+
+ JNIEnv *env = ThreadAndroid::get_env();
+
+ String sd;
+ if (current_dir=="")
+ sd=p_dir;
+ else
+ sd=current_dir+"/"+p_dir;
+
+ String path=fix_path(sd).simplify_path();
+ if (path.begins_with("/"))
+ path=path.substr(1,path.length());
+ else if (path.begins_with("res://"))
+ path=path.substr(6,path.length());
+
+ jstring js = env->NewStringUTF(path.utf8().get_data());
+ int res = env->CallIntMethod(io,_dir_open,js);
+ if (res<=0)
+ return false;
+
+ env->CallVoidMethod(io,_dir_close,res);
+ env->DeleteLocalRef(js);
+
+ return true;
+}
Error DirAccessJAndroid::make_dir(String p_dir){
diff --git a/platform/android/dir_access_jandroid.h b/platform/android/dir_access_jandroid.h
index b6e3fe393f..958ea34891 100644
--- a/platform/android/dir_access_jandroid.h
+++ b/platform/android/dir_access_jandroid.h
@@ -70,6 +70,7 @@ public:
virtual bool file_exists(String p_file);
+ virtual bool dir_exists(String p_dir);
virtual Error make_dir(String p_dir);