web-dev-qa-db-ja.com

NSURLからファイル名を取得する

私はURLを持っています

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

「honda_v4_concept_widescreen_bike-wide.jpg」というファイル名を抽出したい

どうすればこれを行うことができますか?

29
farisolusa

以下のコードは動作するはずです。それを更新して、一番上のステートメントを削除しました。 C++のNSStringとconst char *またはstd :: stringを使用することもできましたが、この場合はC文字ポインターが適切であると考えました。

また、独自の簡潔な関数になるようにこれを改良しました。

-(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_]);
50
Apollo SOFTWARE

スウィフト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!")
}
3
budidino

以下のコードは機能します。 absoluteStringは別の回答で推奨されていますが、ファイル名に(たとえば)スペースが含まれていると正しく機能しません。

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