【发布时间】:2019-10-11 23:47:05
【问题描述】:
我有 2 个网址:
1. "C:/inetpub/wwwroot/XYZ/"
2. "/XYZ/Media/Default"
我想将两者结合起来得到"C:/inetpub/wwwroot/XYZ/Media/Default"
我该怎么做?请注意,这两个 Url 的类型都是 string。
【问题讨论】:
标签: c# asp.net asp.net-mvc url
我有 2 个网址:
1. "C:/inetpub/wwwroot/XYZ/"
2. "/XYZ/Media/Default"
我想将两者结合起来得到"C:/inetpub/wwwroot/XYZ/Media/Default"
我该怎么做?请注意,这两个 Url 的类型都是 string。
【问题讨论】:
标签: c# asp.net asp.net-mvc url
您可以根据分隔符 "/" 拆分两个 URL,然后将两个列表合并,不重复如下:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var url1 = "C:/inetpub/wwwroot/XYZ/";
var url2 = "/XYZ/Media/Default";
var f = url1.Split(new[]{'/'},StringSplitOptions.RemoveEmptyEntries);
var s = url2.Split(new[]{'/'},StringSplitOptions.RemoveEmptyEntries);
var fullurl = string.Join("/", f.Concat(s).Distinct());
Console.WriteLine(fullurl);
}
}
输出:
C:/inetpub/wwwroot/XYZ/Media/Default
此解决方案适用于所有情况,即使相交多于一个目录
【讨论】:
C:/Media/Media/File.txt。我认为结果将是错误的。
如果它们总是具有相同的形式,那么你可以这样做
string url = string.Concat(url1.Trim(new[] {'/'}), url2);
【讨论】:
System.IO 像Path.Combine 这样的函数来做到这一点?