From db57f18b089ec64bf2d50448617de6c6564c828f Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 5 Aug 2016 15:06:28 +0200 Subject: [PATCH] Add function to get home/documents folder --- renderdoc/os/os_specific.h | 1 + renderdoc/os/posix/posix_stringio.cpp | 8 ++++++++ renderdoc/os/win32/win32_stringio.cpp | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/renderdoc/os/os_specific.h b/renderdoc/os/os_specific.h index 2ea5f238d..953c584a2 100644 --- a/renderdoc/os/os_specific.h +++ b/renderdoc/os/os_specific.h @@ -250,6 +250,7 @@ namespace FileIO { void GetDefaultFiles(const char *logBaseName, string &capture_filename, string &logging_filename, string &target); +string GetHomeFolderFilename(); string GetAppFolderFilename(const string &filename); string GetReplayAppFilename(); diff --git a/renderdoc/os/posix/posix_stringio.cpp b/renderdoc/os/posix/posix_stringio.cpp index 8ea3b6cb8..95f83ef5a 100644 --- a/renderdoc/os/posix/posix_stringio.cpp +++ b/renderdoc/os/posix/posix_stringio.cpp @@ -49,6 +49,14 @@ namespace FileIO // in posix/.../..._stringio.cpp const char *GetTempRootPath(); +string GetHomeFolderFilename() +{ + passwd *pw = getpwuid(getuid()); + const char *homedir = pw->pw_dir; + + return homedir; +} + void CreateParentDirectory(const string &filename) { string fn = dirname(filename); diff --git a/renderdoc/os/win32/win32_stringio.cpp b/renderdoc/os/win32/win32_stringio.cpp index c4ce34487..35dfb4794 100644 --- a/renderdoc/os/win32/win32_stringio.cpp +++ b/renderdoc/os/win32/win32_stringio.cpp @@ -285,6 +285,20 @@ void GetDefaultFiles(const char *logBaseName, string &capture_filename, string & logging_filename = StringFormat::Wide2UTF8(wstring(temp_filename)); } +string GetHomeFolderFilename() +{ + PWSTR docsPath; + SHGetKnownFolderPath(FOLDERID_Documents, KF_FLAG_SIMPLE_IDLIST | KF_FLAG_DONT_UNEXPAND, NULL, + &docsPath); + wstring documents = docsPath; + CoTaskMemFree(docsPath); + + if(documents[documents.size() - 1] == '/' || documents[documents.size() - 1] == '\\') + documents.pop_back(); + + return StringFormat::Wide2UTF8(documents); +} + string GetAppFolderFilename(const string &filename) { PWSTR appDataPath;