如何从url获取FileName

时间:2012-11-05 09:45:39

标签: c# asp.net

我的网址是http://xxx.xxx.xxx/mls/pmmls/12/-8/53/6/12-8536_2.jpg/t1349940727/100x100/ 并且只需要从“12-8536_2.jpg"

”获取来自网址的文件名
url format is dynamic. Filename with extension must be in url. but it filename with extension  may not be in last position of url

我尝试过Path.GetFileName(),但它给出了“”。

是否有人知道如何为这种类型的网址提取文件名?

5 个答案:

答案 0 :(得分:1)

无法保证网址的任何部分都映射到文件,因此尝试在网址中获取 FileName 是没有意义的。

答案 1 :(得分:0)

如果您知道,文件名后面会有两个其他段(在您的示例中为t1349940727100x100),您可以

var input =
    "http://xxx.xxx.xxx/mls/pmmls/12/-8/53/6/12-8536_2.jpg/t1349940727/100x100/";
var uri = new Uri(input);
var fileName = uri.Segments[uri.Segments.Length - 3];

如果您不知道,那么就像其他人所说的那样,没有简单的方法可以判断哪个部分是文件名。你可以试试

var fileName = url.Segments.Last(seg => seg.Contains("."));

获取带有点的最后一段。

答案 2 :(得分:0)

12-8536_2.jpg似乎不是该网址中的文件。在任何情况下,如果URL中的“文件名”始终为.jpg,您可以将URL输出到字符串(或 AS 字符串)和Regex:

string filename = Regex.Match(URL,@"\/([A-Za-z0-9\-._~:?#\[\]@!$%&'()*+,;=]*).jpg").Groups[1].Value

编辑:我认为这是针对特定文件的预览大小不同的网站。您还可以按如下方式指定不同的可能扩展名(例如):

string filename = Regex.Match(URL,@"\/([A-Za-z0-9\-._~:?#\[\]@!$%&'()*+,;=]*)(.jpg|.JPG|.jpeg|.JPEG)").Groups[1].Value

答案 3 :(得分:0)

您应该定义扩展名列表,例如.jpg,.png .gif(您期望的所有文件类型)。

将您的网址转换为字符串(如果它尚未存在)并尝试查找扩展名的索引。您现在知道文件名的位置以及是否有文件名。删除文件名后的所有内容。

现在找到一个“/”标记,并在删除(包括)“/”之前删除该部分,重复此操作,直到你不能再找到“/”(例如使用while函数)。

有关如何执行此操作的详细信息,请访问here

答案 4 :(得分:0)

[{u'items': [{u'is_local': False, u'track': {u'album': {u'album_type': u'album', u'name': u'At Last!', u'external_urls': {u'spotify': u'https://open.spotify.com/album/2pBhXw3Hi1hBf8FpAtE101'}, u'uri': u'spotify:album:2pBhXw3Hi1hBf8FpAtE101', u'href': u'https://api.spotify.com/v1/albums/2pBhXw3Hi1hBf8FpAtE101', u'images': [{u'url': u'https://i.scdn.co/image/6387bb37eb021db9f3c9da7173fd093f5ded2429', u'width': 640, u'height': 637}, {u'url': u'https://i.scdn.co/image/55d6dc87cf5f29485c251cf672a0896bd87cc2b9', u'width': 300, u'height': 299}, {u'url': u'https://i.scdn.co/image/8bcfde39549a94c46e9cf51e653572a71aaf1f0d', u'width': 64, u'height': 64}], u'type': u'album', u'id': u'2pBhXw3Hi1hBf8FpAtE101', u'available_markets': [u'AD'..., u'UY']}, u'name': u'At Last - Single Version', u'uri': u'spotify:track:0CmIALzGn4vHIHJG4n3Q4z', u'external_urls': {u'spotify': u'https://open.spotify.com/track/0CmIALzGn4vHIHJG4n3Q4z'}, u'popularity': 65, u'explicit': False, u'preview_url': u'https://p.scdn.co/mp3-preview/a8fc45fd24d3f6aaaa33262cba0d5c91b37d56fd', u'track_number': 7, u'disc_number': 1, u'href': u'https://api.spotify.com/v1/tracks/0CmIALzGn4vHIHJG4n3Q4z', u'artists': [{u'name': u'Etta James', u'external_urls': {u'spotify': u'https://open.spotify.com/artist/0iOVhN3tnSvgDbcg25JoJb'}, u'uri': u'spotify:artist:0iOVhN3tnSvgDbcg25JoJb', u'href': u'https://api.spotify.com/v1/artists/0iOVhN3tnSvgDbcg25JoJb', u'type': u'artist', u'id': u'0iOVhN3tnSvgDbcg25JoJb'}], u'duration_ms': 182400, u'external_ids': {u'isrc': u'USMC16046323'}, u'type': u'track', u'id': u'0CmIALzGn4vHIHJG4n3Q4z', u'available_markets': [u'AD',...u'UY']}, u'added_by': None, u'added_at': u'2012-01-06T10:47:09Z'}, {u'is_local': False...]