2012-03-01 3 views

ответ

13

Класс Uri - ваш друг.

Предоставляет представление объекта унифицированного идентификатора ресурса (URI) и легкий доступ к частям URI.

IsFile попытается определить, действительно ли Uri указывает на файл.

Используйте свойство Segements, чтобы получить имя файла (он будет последним сегментом).

Uri uri = new Uri("http://example.com/title/index.htm"); 
var filename = uri.Segments[uri.Segments.Length - 1]; 
// filename == "index.htm" 
+0

Благодаря/работает хорошо, за исключением того, что ISFILE дает мне ложна на этой uristring: [ссылка] (HTTP : //www.example.com/foo/bar/banner/enu_wide_small_219x113_white.gif) – Muleskinner

+0

isFile вернет true только в том случае, если url имеет файл формы: // – Lukos

0

Вы можете использовать Server.MapPath() для сопоставления физического пути с виртуальным путем.

Кроме того, существует ряд методов в пределах HTTPUtility, которые помогут вам наметить различные типы путей.

0

Существует множество способов, основные из которых описаны here
Baqsically использование класса Uri и, возможно, строковое токенизация, если это необходимо.

1

Вы можете придерживаться создания объекта Uri или, если вы заботитесь об использовании производительность что-то подобное этому:

public class UriHelpers 
    { 
     public static string GetFileNameFromUrl(string url) 
     { 
      string lastSegment = url.Split('/').Last(); 

      return lastSegment.Substring(0, lastSegment.IndexOf('?') < 0 ? lastSegment.Length : lastSegment.IndexOf('?')); 
     } 
    } 
Смежные вопросы