当我有NSString和/Users/user/Projects/thefile.ext时,我想用Objective-C方法提取thefile。
NSString
/Users/user/Projects/thefile.ext
thefile
最简单的方法是什么?
从NSString引用中提取,你可以使用:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
lastPathComponent调用将返回thefile.ext,而stringByDeletingPathExtension将从末尾删除扩展名后缀。
lastPathComponent
thefile.ext
stringByDeletingPathExtension
如果你要显示一个用户可读的文件名,你确实不想使用lastPathComponent。相反,将完整路径传递给NSFileManager的displayNameAtPath:方法。这基本上做同样的事情,只是它正确地本地化了文件名,并根据用户的首选项删除了扩展名。
displayNameAtPath:
冒着迟到几年和跑题的风险——尽管@Marc的见解很好,但在Swift中,它看起来是这样的:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent