From c5ea4b27f97df47f6f190204e2b1e4018414a31e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 4 Jul 2019 11:42:40 +0200 Subject: [PATCH] FileSystem dock: Improve duplicate check for directory paths Supersedes and closes #30225. --- editor/filesystem_dock.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 9301d8c1a4b..b74350c98b4 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1324,14 +1324,14 @@ void FileSystemDock::_duplicate_operation_confirm() { return; } - String new_path; String base_dir = to_duplicate.path.get_base_dir(); - if (to_duplicate.is_file) { - new_path = base_dir.plus_file(new_name); - } else { - new_path = base_dir.substr(0, base_dir.find_last("/")).plus_file(new_name); + // get_base_dir() returns "some/path" if the original path was "some/path/", so work it around. + if (to_duplicate.path.ends_with("/")) { + base_dir = base_dir.get_base_dir(); } + String new_path = base_dir.plus_file(new_name); + //Present a more user friendly warning for name conflict DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (da->file_exists(new_path) || da->dir_exists(new_path)) {