我有一个名为url的字符串,即
NSString *url = @"http://sound17.mp3pk.com/indian/barfi/%5BSongs.PK%5D%20
Barfi%20-%2001%20-%20Barfi!.mp3";
现在我正在下载这首歌并保存这个我需要指定文件名。我想要这样的文件名,它应该从这个url中的url.like获取文件名本身,它应该需要{{1}这是url中的文件名,但不应包含Url格式化程序。
我正在做的是
%5BSongs.PK%5D%20
Barfi%20-%2001%20-%20Barfi!.mp3
答案 0 :(得分:1)
这样的事情应该有效:
NSString *URLString = @"http://sound17.mp3pk.com/indian/barfi/%5BSongs.PK%5D%20Barfi%20-%2001%20-%20Barfi!.mp3";
NSURL *URL = [NSURL URLWithString:url];
NSString *filename = [[[URL path] lastPathComponent] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//=> [Songs.PK] Barfi - 01 - Barfi!.mp3
请注意,如果内容是动态的(例如http://example.com/getsong?q=foobar
之类的内容),则无法始终仅从网址获取有用的文件名。
编辑:从任意网址获取文件名的更好方法是发出请求并检查响应的Content-Disposition
HTTP header。