Cuando tengo NSString
con /Users/user/Projects/thefile.ext
quiero extraer thefile
con métodos Objective-C.
Cual es la forma mas fácil de hacer eso?
Cuando tengo NSString
con /Users/user/Projects/thefile.ext
quiero extraer thefile
con métodos Objective-C.
Cual es la forma mas fácil de hacer eso?
Respuestas:
Tomado de la referencia NSString , puede usar:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
La lastPathComponent
llamada volverá thefile.ext
y stringByDeletingPathExtension
eliminará el sufijo de extensión del final.
lastPathComponent
. ¡Gracias!
[[[NSFileManager defaultManager] displayNameAtPath:path] stringByDeletingPathExtension]
(use el administrador de archivos que desee). Esto garantiza que el nombre de archivo se localice correctamente y que la extensión se haya eliminado.
NSString *myExtension = [myString pathExtension]
Si está mostrando un nombre de archivo legible por el usuario, no desea usarlo lastPathComponent
. En su lugar, pase la ruta completa al displayNameAtPath:
método NSFileManager . Esto básicamente hace lo mismo, solo que localiza correctamente el nombre del archivo y elimina la extensión en función de las preferencias del usuario.
A riesgo de llegar años tarde y fuera de tema, y a pesar de la excelente visión de @ Marc, en Swift parece que:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent