Очевидный факт, что это - язык мультипарадигмы, делает это очень очень гибким.
string path1 = "C:\test";
string path2 = "C:\test\abc";
var root = Path.GetFullPath(path1);
var secondDir = Path.GetFullPath(path2 + Path.AltDirectorySeparatorChar);
if (!secondDir.StartsWith(root))
{
}
Path.GetFullPath
работает отлично с путями, как: C:\test\..\forbidden\