Метод Path.Combine, предназначенный для облегчения жизни разработчика, в действительности, содержит подводный камень, не позволяющий его использовать так бездумно, как хотелось бы. Нелогичность (логичность от Microsoft) замечена не только мною и заключается в том, что если второй путь является абсолютным, то возвращается только второй путь.
Например:
Path.Combine("dir1", @"dir2");
В Microsoft серьезно думают, что разработчик ожидает получить dir2. Логичной была бы проверка настоящего абсолютного пути(c именем диска c:dir2) , а не просто наличие слеша(Path.DirectorySeparatorChar) в начале.
Следующий вызов Path.Combine возвращает полную бессмыслицу «dir1.dir2»
String path = Path.Combine("dir1", @".dir2");
Мораль проста — помнить об этой особенности и писать свой костыльный Path.Combine.
Комментарии: