Вызов lastPathComponent вернет thefile.ext, а stringByDeletingPathExtension удалит расширение с конца.
Ответ 2
Если вы показываете имя пользователя для чтения, вы не хотите использовать lastPathComponent. Вместо этого передайте полный путь к методу NSFileManager displayNameAtPath:. Это в основном делает то же самое, только он правильно локализует имя файла и удаляет расширение на основе пользовательских настроек.
Ответ 3
рискуя стать летними и не связанными с темой - и несмотря на превосходное понимание @Marc, в Swift это выглядит так:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent