动态更改主机名

Changing Host Names dynamically

我在本地服务器上有文件,地址为 \localServerAddress\Folder\Program.exe。我需要动态删除服务器地址并将其替换为在表单其他地方选择的不同服务器地址。服务器名称可以有不同的长度,因此,我无法使用 string.Substring 函数。

所以给定输入

\localServerAddress\Folder\Program.exe

我想要结果

\differentServerAddress\Folder\Program.exe

如果您总是使用 UNC

然后

string toRemove = new Uri(yourString).host;
string newString = yourString.Replace(String.format(@"\{0})",toRemove)
                                    , String.format(@"\{0})",whateveryouwant));

使用这个方法:

    string changeServerInPathString(string originalString, string newServer)
    {
        List<string> stringParts = originalString.TrimStart('\').Split('\').ToList();
        stringParts.RemoveAt(0);
        stringParts.Insert(0, newServer);
        return string.Join("\", stringParts.ToArray()).Insert(0, "\\");
    }
    string text =   @"\test\FolderName\foo.exe";
    text = text.Replace('\', '-'); \ this is done as I was not able to make the regex **\\\(.)*?\** , work.
    Regex rg = new Regex("--.*?-"); \ if in case the above mentioned regex is made to work correctly please replace the regex with the same.
    text  = rg.Replace(text, "");
    Console.WriteLine(text.Replace('-', '\'));

    Console.Read();

你可以这样使用:

void Main()
{
    string path = @"\localServerAddress\Folder\Program.exe";

    UriBuilder bld = new UriBuilder(path);
    bld.Host = "NewServer";
    Console.WriteLine(bld.Uri.LocalPath);
}

结果:\newserver\Folder\Program.exe