web-dev-qa-db-fra.com

Objective-C: Extraire le nom du fichier de la chaîne de chemin

Quand j'ai NSString avec /Users/user/Projects/thefile.ext, je veux extraire thefile avec les méthodes Objective-C.

Quel est le moyen le plus simple de le faire?

251
Anton

Tiré de la référence NSString , vous pouvez utiliser:

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

L'appel lastPathComponent renverra thefile.ext, et le stringByDeletingPathExtension supprimera le suffixe d'extension de la fin.

598
Peter

Si vous affichez un nom de fichier lisible par l'utilisateur, vous ne voulez pas utiliser lastPathComponent. À la place, transmettez le chemin complet à la méthode displayNameAtPath: de NSFileManager. Cela fait fondamentalement la même chose, mais seulement il localise correctement le nom du fichier et supprime l'extension en fonction des préférences de l'utilisateur.

37
Marc Charbonneau

Au risque d'être en retard et hors sujet - et malgré l'excellente perspicacité de @ Marc, dans Swift, il se présente comme suit:

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