it-swarm.com.ru

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

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

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

251
Anton

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

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

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

598
Peter

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

37
Marc Charbonneau

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

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