std::string PathImpl::homeImpl() { std::string result; try { // windows service has no home dir, return system directory instead result = EnvironmentImpl::getImpl("HOMEDRIVE"); result.append(EnvironmentImpl::getImpl("HOMEPATH")); } catch (NotFoundException&) { result = systemImpl(); } std::string::size_type n = result.size(); if (n > 0 && result[n - 1] != '\\') result.append("\\"); return result; }
std::string PathImpl::configImpl() { std::string result; // if PROGRAMDATA environment variable not exist, return system directory instead try { result = EnvironmentImpl::getImpl("PROGRAMDATA"); } catch (NotFoundException&) { result = systemImpl(); } std::string::size_type n = result.size(); if (n > 0 && result[n - 1] != '\\') result.append("\\"); return result; }
std::string PathImpl::homeImpl() { std::string result; if (EnvironmentImpl::hasImpl("USERPROFILE")) { result = EnvironmentImpl::getImpl("USERPROFILE"); } else if (EnvironmentImpl::hasImpl("HOMEDRIVE") && EnvironmentImpl::hasImpl("HOMEPATH")) { result = EnvironmentImpl::getImpl("HOMEDRIVE"); result.append(EnvironmentImpl::getImpl("HOMEPATH")); } else { result = systemImpl(); } std::string::size_type n = result.size(); if (n > 0 && result[n - 1] != '\\') result.append("\\"); return result; }