Есть ли надежный способ вычисления инверсии Path.Combine()?
Path.Combine( "c:\folder", "subdirectory\something.txt" ) может возвращать что-то вроде "c:\folder\subdirectory\something.text". То, что я хочу, это инверсная функция, в которой Path.GetRelativeUrl( "c:\folder", "c:\folder\subdirectory\something.text" ) вернет нечто вроде "подкаталога\something.txt".
Одним из решений является выполнение строковых сравнений и обрезка корней, но это не сработает, если один и тот же путь выражается разными способами (использование ".." или "~ 1" в выражении пути).