getSearchPathLocation now supports files which do not exist, preferring locations where the parent folder matches and finally defaulting to the first contributor of the search path.