我想编写一种方法来换出 UNC 路径中的服务器名称。所以如果我有"\\server1\folder\child"
我想换"\\server2\folder\child"
。.net 处理反斜杠(正则表达式、Path.Combine)的各种尝试都遇到了锯齿状的边缘。我不会在运行时知道“server1”的名称。
这是我在 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();