diff --git a/src/arch/ArchHooks/ArchHooks_Win32Static.cpp b/src/arch/ArchHooks/ArchHooks_Win32Static.cpp index f3dc6d64d6..36a28749e5 100644 --- a/src/arch/ArchHooks/ArchHooks_Win32Static.cpp +++ b/src/arch/ArchHooks/ArchHooks_Win32Static.cpp @@ -55,16 +55,21 @@ static RString GetMountDir( const RString &sDirOfExecutable ) void ArchHooks::MountInitialFilesystems( const RString &sDirOfExecutable ) { RString sDir = GetMountDir( sDirOfExecutable ); + RString sCommonAppDataDir = SpecialDirs::GetCommonAppDataDir() + PRODUCT_ID; FILEMAN->Mount( "dir", sDir, "/" ); + FILEMAN->Mount( "dir", sCommonAppDataDir, "/" ); + FILEMAN->Mount( "dir", sCommonAppDataDir + "/Cache", "/Cache" ); } void ArchHooks::MountUserFilesystems( const RString &sDirOfExecutable ) { RString sAppDataDir = SpecialDirs::GetAppDataDir() + PRODUCT_ID; - FILEMAN->Mount( "dir", sAppDataDir + "/Cache", "/Cache" ); + RString sLocalAppDataDir = SpecialDirs::GetLocalAppDataDir() + PRODUCT_ID; + RString sPicturesDir = SpecialDirs::GetPicturesDir() + PRODUCT_ID; + FILEMAN->Mount( "dir", sAppDataDir + "/Logs", "/Logs" ); FILEMAN->Mount( "dir", sAppDataDir + "/Save", "/Save" ); - FILEMAN->Mount( "dir", sAppDataDir + "/Screenshots", "/Screenshots" ); + FILEMAN->Mount( "dir", sPicturesDir + "/Screenshots", "/Screenshots" ); FILEMAN->Mount( "dir", sAppDataDir + "/Packages", "/" + SpecialFiles::USER_PACKAGES_DIR ); } diff --git a/src/archutils/Win32/SpecialDirs.cpp b/src/archutils/Win32/SpecialDirs.cpp index 48c274b824..5c48528e9e 100644 --- a/src/archutils/Win32/SpecialDirs.cpp +++ b/src/archutils/Win32/SpecialDirs.cpp @@ -18,6 +18,21 @@ RString SpecialDirs::GetAppDataDir() return GetSpecialFolderPath( CSIDL_APPDATA ); } +RString SpecialDirs::GetLocalAppDataDir() +{ + return GetSpecialFolderPath( CSIDL_LOCAL_APPDATA ); +} + +RString SpecialDirs::GetCommonAppDataDir() +{ + return GetSpecialFolderPath( CSIDL_COMMON_APPDATA ); +} + +RString SpecialDirs::GetPicturesDir() +{ + return GetSpecialFolderPath( CSIDL_MYPICTURES ); +} + RString SpecialDirs::GetDesktopDir() { return GetSpecialFolderPath( CSIDL_DESKTOP ); diff --git a/src/archutils/Win32/SpecialDirs.h b/src/archutils/Win32/SpecialDirs.h index c3ce9b42a9..3ea9ac7465 100644 --- a/src/archutils/Win32/SpecialDirs.h +++ b/src/archutils/Win32/SpecialDirs.h @@ -4,6 +4,9 @@ namespace SpecialDirs { RString GetAppDataDir(); + RString GetLocalAppDataDir(); + RString GetCommonAppDataDir(); + RString GetPicturesDir(); RString GetDesktopDir(); };