浏览代码

Fix file panel renaming unable to change the case of dirs on Windows

Tested on Windows 10.
Robbie Cooper 4 年之前
父节点
当前提交
85e99460b4
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      drivers/windows/dir_access_windows.cpp

+ 5 - 0
drivers/windows/dir_access_windows.cpp

@@ -256,6 +256,11 @@ Error DirAccessWindows::rename(String p_path, String p_new_path) {
 
 	// If we're only changing file name case we need to do a little juggling
 	if (p_path.to_lower() == p_new_path.to_lower()) {
+		if (dir_exists(p_path)) {
+			// The path is a dir; just rename
+			return ::_wrename((LPCWSTR)(p_path.utf16().get_data()), (LPCWSTR)(p_new_path.utf16().get_data())) == 0 ? OK : FAILED;
+		}
+		// The path is a file; juggle
 		WCHAR tmpfile[MAX_PATH];
 
 		if (!GetTempFileNameW((LPCWSTR)(fix_path(get_current_dir()).utf16().get_data()), nullptr, 0, tmpfile)) {