当我NSString
/Users/user/Projects/thefile.ext
时,我想用Objective-C方法提取thefile
。
最简单的方法是什么?
答案 0 :(得分:597)
取自the NSString reference,您可以使用:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
lastPathComponent
来电将返回thefile.ext
,stringByDeletingPathExtension
将从末尾删除扩展名后缀。
答案 1 :(得分:37)
如果您要显示用户可读的文件名,则不要使用lastPathComponent
。而是将完整路径传递给NSFileManager的displayNameAtPath:
方法。这基本上做了同样的事情,只是它正确地本地化文件名并根据用户的偏好删除扩展名。
答案 2 :(得分:3)
冒着多年迟到和偏离主题的风险 - 尽管@ Marc的出色见解,在Swift看起来像:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent