Browse Source

Fix: Make get_space_left on Windows use current_dir instead of process CWD

moluopro 1 month ago
parent
commit
39fba218bd
1 changed files with 8 additions and 1 deletions
  1. 8 1
      drivers/windows/dir_access_windows.cpp

+ 8 - 1
drivers/windows/dir_access_windows.cpp

@@ -329,7 +329,14 @@ Error DirAccessWindows::remove(String p_path) {
 
 
 uint64_t DirAccessWindows::get_space_left() {
 uint64_t DirAccessWindows::get_space_left() {
 	uint64_t bytes = 0;
 	uint64_t bytes = 0;
-	if (!GetDiskFreeSpaceEx(nullptr, (PULARGE_INTEGER)&bytes, nullptr, nullptr)) {
+
+	String path = fix_path(current_dir);
+
+	if (!path.ends_with("\\")) {
+		path += "\\";
+	}
+
+	if (!GetDiskFreeSpaceExW((LPCWSTR)(path.utf16().get_data()), (PULARGE_INTEGER)&bytes, nullptr, nullptr)) {
 		return 0;
 		return 0;
 	}
 	}