/Users/user/Projects/thefile.ext
を含むNSString
がある場合、Objective-Cメソッドを使用してthefile
を抽出します。
それを行う最も簡単な方法は何ですか?
NSStringリファレンス から取得したものを使用できます:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
lastPathComponent
呼び出しはthefile.ext
を返し、stringByDeletingPathExtension
は拡張サフィックスを末尾から削除します。
ユーザーが読み取り可能なファイル名を表示している場合は、notlastPathComponent
を使用します。代わりに、NSFileManagerのdisplayNameAtPath:
メソッドにフルパスを渡します。これは基本的に同じことを行いますが、ファイル名を正しくローカライズし、ユーザーの設定に基づいて拡張子を削除するだけです。
何年も遅れて話題にならないというリスクがあり、@ Marcの優れた洞察にもかかわらず、Swiftでは次のようになります。
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent