X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Fwindows%2Fdir_location.cpp;fp=source%2Ffs%2Fwindows%2Fdir_location.cpp;h=ea542be3a75abcf87b68fec82edc83734bfa93a6;hp=0000000000000000000000000000000000000000;hb=e2b5cb6cd61bf8c6f56f624cc835233df92288da;hpb=edf916d784e503505ddac2acef6f3e9a72abb0d6 diff --git a/source/fs/windows/dir_location.cpp b/source/fs/windows/dir_location.cpp new file mode 100644 index 0000000..ea542be --- /dev/null +++ b/source/fs/windows/dir_location.cpp @@ -0,0 +1,28 @@ +#include +#include "dir.h" + +using namespace std; + +namespace Msp { +namespace FS { + +Path get_home_dir() +{ + char home[MAX_PATH]; + if(SHGetFolderPath(0, CSIDL_PERSONAL, 0, 0, home)==S_OK) + return home; + return "."; +} + +Path get_user_data_dir(const string &appname) +{ + if(appname.empty()) + throw invalid_argument("get_user_data_dir"); + char datadir[MAX_PATH]; + if(SHGetFolderPath(0, CSIDL_LOCAL_APPDATA, 0, 0, datadir)==S_OK) + return Path(datadir)/appname; + return "."; +} + +} // namespace FS +} // namespace Msp