Это является самым коротким, я могу придумать:
static string GetParentUriString(Uri uri)
{
return uri.AbsoluteUri.Remove(uri.AbsoluteUri.Length - uri.Segments.Last().Length);
}
, Если Вы хотите использовать Последнее () метод, необходимо будет включать Систему. Linq.
Быстрый и грязный
int pos = uriString.LastIndexOf('/');
if (pos > 0) { uriString = uriString.Substring(0, pos); }
Должен быть более простой способ сделать это с помощью встроенных методов uri, но вот мой поворот в предложении @unknown (yahoo).
В этой версии вам не нужен System.Linq
, и он также обрабатывает URI со строками запроса:
private static string GetParentUriString(Uri uri)
{
return uri.AbsoluteUri.Remove(uri.AbsoluteUri.Length - uri.Segments[uri.Segments.Length -1].Length - uri.Query.Length);
}
Кратчайший путь, который я нашел:
static Uri GetParent(Uri uri) {
return new Uri(uri, Path.GetDirectoryName(uri.LocalPath) + "/");
}