Objective-C: Извлечь имя файла из строки пути

Когда у меня есть NSString с /Users/user/Projects/thefile.ext, я хочу извлечь thefile с помощью методов Objective-C.

Каков самый простой способ сделать это?

Ответ 1

Взято из ссылка NSString, вы можете использовать:

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

Вызов lastPathComponent вернет thefile.ext, а stringByDeletingPathExtension удалит расширение с конца.

Ответ 2

Если вы показываете имя пользователя для чтения, вы не хотите использовать lastPathComponent. Вместо этого передайте полный путь к методу NSFileManager displayNameAtPath:. Это в основном делает то же самое, только он правильно локализует имя файла и удаляет расширение на основе пользовательских настроек.

Ответ 3

рискуя стать летними и не связанными с темой - и несмотря на превосходное понимание @Marc, в Swift это выглядит так:

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