动态更改主机名
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
我在本地服务器上有文件,地址为 \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