К моему удивлению, этот код не дает ожидаемых результатов:
var basePath = @"\\server\BaseFolder";
var relativePath = @"\My\Relative\Folder";
var combinedPath = Path.Combine(basePath, relativePath);
Результат \My\Relative\Folder
вместо ожидаемого \\server\BaseFolder\My\Relative\Folder
.
Почему это? Какой лучший способ объединить относительные пути, которые могут иметь или не иметь косой черты в них?
EDIT: Я знаю, что я могу просто манипулировать строкой на relativePath для обнаружения и удаления стартовой косой черты. Есть ли более безопасный способ сделать это (я думал, что Path.Combine
должен был быть безопасным способом), который будет учитывать обратную косую черту и frontslashes?