Para mi sorpresa, este código no produce los resultados esperados:¿Por qué Path.Combine produce este resultado con una ruta relativa?
var basePath = @"\\server\BaseFolder";
var relativePath = @"\My\Relative\Folder";
var combinedPath = Path.Combine(basePath, relativePath);
El resultado es \My\Relative\Folder
en lugar de la \\server\BaseFolder\My\Relative\Folder
esperado.
¿Por qué es esto? ¿Cuál es la mejor manera de combinar rutas relativas que pueden tener o no una barra inclinada?
EDIT: Soy consciente de que yo sólo puedo hacer la manipulación de cadenas en relativePath para detectar y eliminar una barra de inicio. ¿Hay alguna manera más segura de hacer esto (pensé que se suponía que el Path.Combine
era la forma segura) que explicaría las barras invertidas y las pestañas frontales?
Esa no es una ruta _relativa_. – SLaks
Entiendo que si hubiera 2 barras invertidas en la parte delantera, ¿sería una ruta UNC, pero una barra oblicua? ¿Seriamente? – Brandon
Sí; seriamente. '\ a \ b' es una ruta ** absoluta **. (aunque es relativo a la unidad) – SLaks