Я хочу написать метод для замены имени сервера по пути UNC. Так что если у меня есть "\\server1\folder\child"
, я хочу обменять его на "\\server2\folder\child"
. Различные попытки сделать это столкнулись с зубчатыми краями с обработкой обратной связью .net (regex, Path.Combine). Я не буду знать имя «server1» во время выполнения.Заменить имя_сервера в пути UNC
Вот отрывок я тестировал в LINQPad, в то время как он работает, кажется, довольно Hacky:
string path = @"\\server1\folder\child";
var uri = new Uri(path);
string newPath = @"\\server2\";
foreach (var part in uri.Segments)
{
if (part == "/")
continue;
newPath += part;
}
var x = new Uri(newPath);
uri.Dump();
x.LocalPath.Dump();
Какие различные попытки? Показать некоторые ... –
и «\ server1 \ folder \ child» не является UNC-контуром ... (в отличие от «\\ server \ share \ path \ file.txt») –
@ Bash.d извините, я случайно разместил вопрос прежде чем я это сделал. – peacedog