mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Win32 move default user folder location to AppData
This commit is contained in:
		
							parent
							
								
									fb13bfe693
								
							
						
					
					
						commit
						29bb82cb8e
					
				@ -26,6 +26,9 @@
 | 
				
			|||||||
#define stat _stat64
 | 
					#define stat _stat64
 | 
				
			||||||
#define fstat _fstat64
 | 
					#define fstat _fstat64
 | 
				
			||||||
#define fileno _fileno
 | 
					#define fileno _fileno
 | 
				
			||||||
 | 
					// Windows version, at least Vista is required to obtain AppData Path
 | 
				
			||||||
 | 
					#define WINVER 0x0600
 | 
				
			||||||
 | 
					#define _WIN32_WINNT 0x0600
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
#ifdef __APPLE__
 | 
					#ifdef __APPLE__
 | 
				
			||||||
#include <sys/param.h>
 | 
					#include <sys/param.h>
 | 
				
			||||||
@ -594,6 +597,21 @@ std::string& GetExeDirectory() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return exe_path;
 | 
					    return exe_path;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::string& AppDataLocalDirectory() {
 | 
				
			||||||
 | 
					    // Windows Vista or later only
 | 
				
			||||||
 | 
					    static std::string local_path;
 | 
				
			||||||
 | 
					    if (local_path.empty()) {
 | 
				
			||||||
 | 
					        PWSTR pw_local_path = 0;
 | 
				
			||||||
 | 
					        wchar_t* wchar_local_path;
 | 
				
			||||||
 | 
					        SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &pw_local_path);
 | 
				
			||||||
 | 
					        wchar_local_path = pw_local_path;
 | 
				
			||||||
 | 
					        local_path = Common::UTF16ToUTF8(wchar_local_path);
 | 
				
			||||||
 | 
					        // Freeing memory
 | 
				
			||||||
 | 
					        CoTaskMemFree(static_cast<void*>(pw_local_path));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return local_path;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @return The user’s home directory on POSIX systems
 | 
					 * @return The user’s home directory on POSIX systems
 | 
				
			||||||
@ -671,6 +689,11 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string& new
 | 
				
			|||||||
    if (paths[D_USER_IDX].empty()) {
 | 
					    if (paths[D_USER_IDX].empty()) {
 | 
				
			||||||
#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
        paths[D_USER_IDX] = GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP;
 | 
					        paths[D_USER_IDX] = GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP;
 | 
				
			||||||
 | 
					        if (!FileUtil::IsDirectory(paths[D_USER_IDX])) {
 | 
				
			||||||
 | 
					            paths[D_USER_IDX] =
 | 
				
			||||||
 | 
					                AppDataLocalDirectory() + DIR_SEP + EMU_DATA_DIR DIR_SEP USERDATA_DIR DIR_SEP;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP;
 | 
					        paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP;
 | 
				
			||||||
        paths[D_CACHE_IDX] = paths[D_USER_IDX] + CACHE_DIR DIR_SEP;
 | 
					        paths[D_CACHE_IDX] = paths[D_USER_IDX] + CACHE_DIR DIR_SEP;
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
				
			|||||||
@ -154,6 +154,7 @@ std::string GetBundleDirectory();
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
std::string& GetExeDirectory();
 | 
					std::string& GetExeDirectory();
 | 
				
			||||||
 | 
					std::string& AppDataLocalDirectory();
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename);
 | 
					size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user