mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Win32 move default user folder location to AppData
This commit is contained in:
		
							parent
							
								
									fb13bfe693
								
							
						
					
					
						commit
						29bb82cb8e
					
				
					 2 changed files with 24 additions and 0 deletions
				
			
		|  | @ -26,6 +26,9 @@ | |||
| #define stat _stat64 | ||||
| #define fstat _fstat64 | ||||
| #define fileno _fileno | ||||
| // Windows version, at least Vista is required to obtain AppData Path
 | ||||
| #define WINVER 0x0600 | ||||
| #define _WIN32_WINNT 0x0600 | ||||
| #else | ||||
| #ifdef __APPLE__ | ||||
| #include <sys/param.h> | ||||
|  | @ -594,6 +597,21 @@ std::string& GetExeDirectory() { | |||
|     } | ||||
|     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 | ||||
| /**
 | ||||
|  * @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()) { | ||||
| #ifdef _WIN32 | ||||
|         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_CACHE_IDX] = paths[D_USER_IDX] + CACHE_DIR DIR_SEP; | ||||
| #else | ||||
|  |  | |||
|  | @ -154,6 +154,7 @@ std::string GetBundleDirectory(); | |||
| 
 | ||||
| #ifdef _WIN32 | ||||
| std::string& GetExeDirectory(); | ||||
| std::string& AppDataLocalDirectory(); | ||||
| #endif | ||||
| 
 | ||||
| size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue