我想編寫一個方法來換出UNC路徑中的服務器名稱。所以如果我有"\\server1\folder\child"
我想換成"\\server2\folder\child"
。各種各樣的嘗試做到這一點已經與.net處理反斜槓(正則表達式,Path.Combine)處理成鋸齒狀邊緣。我不會在運行時知道「server1」的名稱。替換UNC路徑中的ServerName
這裏有一個片段我在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();
各種嘗試?顯示一些... – 2013-03-15 20:17:33
和「\ server1 \ folder \ child」不是UNC路徑...(不像「\\ server \ share \ path \ file.txt」) – 2013-03-15 20:19:31
@ Bash.d對不起,我無意中發佈了這個問題在我完成之前輸入它。 – peacedog 2013-03-15 20:22:53