boludoz 2 лет назад
Родитель
Сommit
7f62a48ab5
1 измененных файлов с 19 добавлено и 15 удалено
  1. 19 15
      src/common/fs/path_util.cpp

+ 19 - 15
src/common/fs/path_util.cpp

@@ -6,7 +6,6 @@
 #include <unordered_map>
 
 #include "common/fs/fs.h"
-#include "common/string_util.h"
 #ifdef ANDROID
 #include "common/fs/fs_android.h"
 #endif
@@ -15,7 +14,7 @@
 #include "common/logging/log.h"
 
 #ifdef _WIN32
-#include <shlobj.h> // Used in GetExeDirectory() and GetWindowsDesktop()
+#include <shlobj.h> // Used in GetExeDirectory()
 #else
 #include <cstdlib>     // Used in Get(Home/Data)Directory()
 #include <pwd.h>       // Used in GetHomeDirectory()
@@ -251,25 +250,30 @@ void SetYuzuPath(YuzuPath yuzu_path, const fs::path& new_path) {
 #ifdef _WIN32
 
 fs::path GetExeDirectory() {
-    WCHAR exe_path[MAX_PATH];
-    if (SUCCEEDED(GetModuleFileNameW(nullptr, exe_path, MAX_PATH))) {
-        std::wstring wide_exe_path(exe_path);
-        return fs::path{Common::UTF16ToUTF8(wide_exe_path)}.parent_path();
+    wchar_t exe_path[MAX_PATH];
+
+    if (GetModuleFileNameW(nullptr, exe_path, MAX_PATH) == 0) {
+        LOG_ERROR(Common_Filesystem,
+                  "Failed to get the path to the executable of the current process");
     }
-    LOG_ERROR(Common_Filesystem, "Failed to get the path to the executable of the current "
-                                 "process");
-    return fs::path{};
+
+    return fs::path{exe_path}.parent_path();
 }
 
 fs::path GetAppDataRoamingDirectory() {
     PWSTR appdata_roaming_path = nullptr;
-    if (SUCCEEDED(SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, NULL, &appdata_roaming_path))) {
-        std::wstring wide_appdata_roaming_path(appdata_roaming_path);
-        CoTaskMemFree(appdata_roaming_path);
-        return fs::path{Common::UTF16ToUTF8(wide_appdata_roaming_path)};
+
+    SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, nullptr, &appdata_roaming_path);
+
+    auto fs_appdata_roaming_path = fs::path{appdata_roaming_path};
+
+    CoTaskMemFree(appdata_roaming_path);
+
+    if (fs_appdata_roaming_path.empty()) {
+        LOG_ERROR(Common_Filesystem, "Failed to get the path to the %APPDATA% directory");
     }
-    LOG_ERROR(Common_Filesystem, "Failed to get the path to the %APPDATA% directory");
-    return fs::path{};
+
+    return fs_appdata_roaming_path;
 }
 
 #else