string Get(string path, string relativeTo)
{
var pathSegments = new List<string>();
var relativeToParentDir = Path.GetDirectoryName(relativeTo);
var ignoreCase = StringComparison.InvariantCultureIgnoreCase;
while (!relativeToParentDir.Equals(Path.GetDirectoryName(path), ignoreCase))
{
pathSegments.Add(Path.GetFileName(path));
path = Path.GetDirectoryName(path);
}
return Path.Combine(pathSegments.AsEnumerable().Reverse().ToArray());
}