Когда я NSString
с /Users/user/Projects/thefile.ext
я хочу , чтобы извлечь thefile
с помощью методов Objective-C.
Какой самый простой способ сделать это?
Когда я NSString
с /Users/user/Projects/thefile.ext
я хочу , чтобы извлечь thefile
с помощью методов Objective-C.
Какой самый простой способ сделать это?
Ответы:
Взято из ссылки NSString , вы можете использовать:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
lastPathComponent
Вызов вернется thefile.ext
, и stringByDeletingPathExtension
будет удалить суффикс расширения с конца.
lastPathComponent
. Спасибо!
[[[NSFileManager defaultManager] displayNameAtPath:path] stringByDeletingPathExtension]
(используйте любой файловый менеджер, который вы хотите). Это гарантирует, что имя файла правильно локализовано, и что расширение было удалено.
NSString *myExtension = [myString pathExtension]
Если вы отображаете читаемое пользователем имя файла, вы не хотите его использовать lastPathComponent
. Вместо этого передайте полный путь к методу NSFileManager displayNameAtPath:
. Это в основном делает то же самое, только корректно локализует имя файла и удаляет расширение в соответствии с предпочтениями пользователя.
С риском опоздания на годы и не по теме - и, несмотря на превосходную проницательность @ Marc, в Swift это выглядит так:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent