bool ProgramSettings::write(const char* fn) { string appDataPath = GetApplicationDataPath(applicationName.c_str(),version.c_str()); if(!FileUtils::MakeDirectoryRecursive(appDataPath.c_str())) return false; ofstream out(((appDataPath+"/")+fn).c_str(),ios::out); if(!out) return false; AnyCollection::write(out); out.close(); return true; }
bool ProgramSettings::read(const char* fn) { string appDataPath = GetApplicationDataPath(applicationName.c_str(),version.c_str()); ifstream in(((appDataPath+"/")+fn).c_str(),ios::in); if(!in) return false; AnyCollection newEntries; if(!newEntries.read(in)) return false; merge(newEntries); return true; }
/* Determine where data folder is situated and store it's path into DataFolder member */ void CSettings::FindDataFolder() { AppParams* params = AppParams::instance(); if (IsDirectory(WinUtils::GetAppFolder() + _T("Data"))) { DataFolder = WinUtils::GetAppFolder() + _T("Data\\"); SettingsFolder = IuCoreUtils::WstringToUtf8(static_cast<LPCTSTR>(DataFolder)); params->setDataDirectory(IuStringUtils::Replace(IuCoreUtils::WstringToUtf8((LPCTSTR)DataFolder), "\\", "/")); params->setSettingsDirectory(IuStringUtils::Replace(SettingsFolder, "\\", "/")); IsPortable = true; return; } SettingsFolder = IuCoreUtils::WstringToUtf8(static_cast<LPCTSTR>(GetApplicationDataPath() + _T("Image Uploader\\"))); params->setSettingsDirectory(IuStringUtils::Replace(SettingsFolder, "\\", "/")); #if !defined(IU_SERVERLISTTOOL) && !defined (IU_CLI) && !defined(IU_SHELLEXT) { CRegistry Reg; CString lang; Reg.SetRootKey(HKEY_CURRENT_USER); if (Reg.SetKey("Software\\Zenden.ws\\Image Uploader", false)) { CString dir = Reg.ReadString("DataPath"); if (!dir.IsEmpty() && IsDirectory(dir)) { DataFolder = dir; params->setDataDirectory(IuStringUtils::Replace(IuCoreUtils::WstringToUtf8((LPCTSTR)DataFolder), "\\", "/")); return; } } } { CRegistry Reg; Reg.SetRootKey(HKEY_LOCAL_MACHINE); if (Reg.SetKey("Software\\Zenden.ws\\Image Uploader", false)) { CString dir = Reg.ReadString("DataPath"); if (!dir.IsEmpty() && IsDirectory(dir)) { DataFolder = dir; params->setDataDirectory(IuStringUtils::Replace(IuCoreUtils::WstringToUtf8((LPCTSTR)DataFolder), "\\", "/")); return; } } } if (FileExists(GetCommonApplicationDataPath() + SETTINGS_FILE_NAME)) { DataFolder = GetCommonApplicationDataPath() + _T("Image Uploader\\"); params->setDataDirectory(IuStringUtils::Replace(IuCoreUtils::WstringToUtf8((LPCTSTR)DataFolder), "\\", "/")); } else #endif { DataFolder = GetApplicationDataPath() + _T("Image Uploader\\"); params->setDataDirectory(IuStringUtils::Replace(IuCoreUtils::WstringToUtf8((LPCTSTR)DataFolder), "\\", "/")); } }