从路径字符串中提取文件名

当我有NSString/Users/user/Projects/thefile.ext时,我想用Objective-C方法提取thefile

最简单的方法是什么?

117026 次浏览

NSString引用中提取,你可以使用:

NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];

lastPathComponent调用将返回thefile.ext,而stringByDeletingPathExtension将从末尾删除扩展名后缀。

如果你要显示一个用户可读的文件名,你确实想使用lastPathComponent。相反,将完整路径传递给NSFileManager的displayNameAtPath:方法。这基本上做同样的事情,只是它正确地本地化了文件名,并根据用户的首选项删除了扩展名。

冒着迟到几年和跑题的风险——尽管@Marc的见解很好,但在Swift中,它看起来是这样的:

let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent