从NSURL中检索文件名

时间:2013-11-13 20:59:37

标签: nsurl

我有一个网址

http://www.hdwallpapers.in/walls/honda_v4_concept_widescreen_bike-wide.jpg

我想提取文件名“honda_v4_concept_widescreen_bike-wide.jpg”

我怎么能这样做?

4 个答案:

答案 0 :(得分:50)

以下代码应该有效。更新了它,所以我删除了顶部声明。我可以使用NSString vs const char *或来自C ++的std :: string,但我认为C Character Pointers非常适合这种情况。

同样改进了这个,所以它有自己的简洁功能:

-(NSString*) extractFile:(const char*) url 
{
    NSURL *yourURL = [NSURL URLWithString:
                     [NSString stringWithCString:url 
                                 encoding:NSUTF8StringEncoding]];
    return [yourURL lastPathComponent];
}

使用:

const char *path_ = "http://www.hdwallpapers.in/walls/honda_v4_concept_widescreen_bike-wide.jpg";
NSLog(@"\t\tYour Extracted file: \n\t%@", [self extractFile:path_]);

答案 1 :(得分:3)

斯威夫特3:

let urlString = "http://www.hdwallpapers.in/walls/honda_v4_concept_widescreen_bike-wide.jpg"
if let url = URL(string: urlString) {
  print("file name: \(url.lastPathComponent)")
} else {
  print("error - not a valid url!")
}

答案 2 :(得分:1)

以下代码有效。在另一个答案中推荐使用absoluteString,但如果文件名中有(例如)空格,则无法正常工作。

NSString *JPEGfilename = [[yourURL path] lastPathComponent];

答案 3 :(得分:-2)

只需使用basename basename()函数

$url = http://www.fullhdwallpapers.in/wp-content/uploads/2017/01/Logan-Movie-Kid-2017-680x425.jpg

echo basename($url);