summaryrefslogtreecommitdiff
path: root/core/io
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2022-01-24 13:12:46 +0200
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2022-01-24 16:22:59 +0200
commitcba82805156ada29993d18b4ceb0721636a3db80 (patch)
tree25e189aeaf622d0f27889019e0f9977d290e37e5 /core/io
parent6a3ff8fa1f2cbad5752cf039827206ac265f68f6 (diff)
[Windows] Add support for handling network share paths.
Diffstat (limited to 'core/io')
-rw-r--r--core/io/dir_access.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/io/dir_access.cpp b/core/io/dir_access.cpp
index 3da9288ffd..db0758d7fc 100644
--- a/core/io/dir_access.cpp
+++ b/core/io/dir_access.cpp
@@ -145,14 +145,18 @@ Error DirAccess::make_dir_recursive(String p_dir) {
full_dir = full_dir.replace("\\", "/");
- //int slices = full_dir.get_slice_count("/");
-
String base;
if (full_dir.begins_with("res://")) {
base = "res://";
} else if (full_dir.begins_with("user://")) {
base = "user://";
+ } else if (full_dir.is_network_share_path()) {
+ int pos = full_dir.find("/", 2);
+ ERR_FAIL_COND_V(pos < 0, ERR_INVALID_PARAMETER);
+ pos = full_dir.find("/", pos + 1);
+ ERR_FAIL_COND_V(pos < 0, ERR_INVALID_PARAMETER);
+ base = full_dir.substr(0, pos + 1);
} else if (full_dir.begins_with("/")) {
base = "/";
} else if (full_dir.find(":/") != -1) {