瀏覽代碼

Merge pull request #21132 from neonsoup/win_move_to_trash_fix

Fix errors during removing files or folders and fix for latin symbols
Rémi Verschelde 7 年之前
父節點
當前提交
92401772c8
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      platform/windows/os_windows.cpp

+ 6 - 1
platform/windows/os_windows.cpp

@@ -2790,9 +2790,13 @@ bool OS_Windows::is_disable_crash_handler() const {
 
 Error OS_Windows::move_to_trash(const String &p_path) {
 	SHFILEOPSTRUCTW sf;
+	WCHAR *from = new WCHAR[p_path.length() + 2];
+	wcscpy(from, p_path.c_str());
+	from[p_path.length() + 1] = 0;
+
 	sf.hwnd = hWnd;
 	sf.wFunc = FO_DELETE;
-	sf.pFrom = p_path.c_str();
+	sf.pFrom = from;
 	sf.pTo = NULL;
 	sf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
 	sf.fAnyOperationsAborted = FALSE;
@@ -2800,6 +2804,7 @@ Error OS_Windows::move_to_trash(const String &p_path) {
 	sf.lpszProgressTitle = NULL;
 
 	int ret = SHFileOperationW(&sf);
+	delete[] from;
 
 	if (ret) {
 		ERR_PRINTS("SHFileOperation error: " + itos(ret));