What happens if you try this
CDirLoader::GetFileExtHandle(not related params)
{
std::string prefDir;
for(size_t i=0;i<preferredPaths.size();++i)
{
if (!preferredPaths[i].empty())
prefDir = preferredPaths[i];
//...
}
}