Utilizzare la classe Uri
per analizzare l'URI: è possibile accedere a tutti i segmenti utilizzando la proprietà Segments
e ricostruire l'URI senza l'ultimo segmento.
var uri = new Uri(myString);
var noLastSegment = string.Format("{0}://{1}", uri.Scheme, uri.Authority);
for(int i = 0; i < uri.Segments.Length - 1; i++)
{
noLastSegment += uri.Segments[i];
}
noLastSegment = noLastSegment.Trim("/".ToCharArray()); // remove trailing `/`
In alternativa per ottenere il nome di schema e di accoglienza, come suggerito da Dour arco alto nel suo commento:
var noLastSegment = uri.GetComponents(UriComponents.SchemeAndServer,
UriFormat.SafeUnescaped);
Si desidera utilizzare linq? perché? – NicoSantangelo
Che cosa vuoi che accada se l'URI contiene metacaratteri, stringhe di query o parametri; per esempio. 'Http:? //www.example.com/admin/users.aspx/deleteUser alpha = per 27% di beta =% 5F% 39'?? –
ottima domanda, idealmente li terrei, rimuovendo solo l'ultimo segmento del percorso. – bflemi3