UNC パスでサーバー名を交換するメソッドを書きたいと思います。だから私が持っているなら、私は"\\server1\folder\child"
交換したい"\\server2\folder\child"
. これを行うためのさまざまな試みは、.net のバックスラッシュ (正規表現、Path.Combine) の処理でギザギザのエッジに遭遇しました。実行時に「server1」の名前はわかりません。
LinqPad でテストしたスニペットを次に示します。
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();