Lorsque j'ai NSString
avec /Users/user/Projects/thefile.ext
Je veux extraire thefile
avec les méthodes Objective-C.Objective-C: Extraire le nom de fichier de la chaîne de chemin
Quelle est la manière la plus facile de faire cela?
Lorsque j'ai NSString
avec /Users/user/Projects/thefile.ext
Je veux extraire thefile
avec les méthodes Objective-C.Objective-C: Extraire le nom de fichier de la chaîne de chemin
Quelle est la manière la plus facile de faire cela?
Tiré de the NSString reference, vous pouvez utiliser:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
L'appel lastPathComponent
retournera thefile.ext
et le stringByDeletingPathExtension
va supprimer l'extension suffic de la fin.
OMG! Merci merci merci! – Anton
Je n'ai jamais entendu parler de 'lastPathComponent'. Je vous remercie! – Dimitris
Une autre solution serait une combinaison de ceci et des réponses de Marc: '[[[NSFileManager defaultManager] displayNameAtPath: chemin] stringByDeletingPathExtension]' (utilisez le gestionnaire de fichiers que vous voulez). Cela garantit que le nom de fichier est correctement localisé et que l'extension a été supprimée. – willurd
Si vous affichez un nom de fichier lisible par l'utilisateur, faites et non pour utiliser lastPathComponent
. Au lieu de cela, passez le chemin d'accès complet à la méthode displayNameAtPath:
de NSFileManager. Cela fait essentiellement la même chose, seulement il localise correctement le nom du fichier et supprime l'extension en fonction des préférences de l'utilisateur.
Pour les bundles, vous pouvez utiliser [[NSBundle bundleWithPath: pref] localizedInfoDictionary] objectForKey: @ "CFBundleName"] à la place. displayNameAtPath inclut l'extension où ce code renvoie le nom localisé. –
N'oubliez pas d'abord de rechercher CFBundleDisplayName. –
Au risque d'être en retard et années hors sujet - et malgré @ excellent aperçu de Marc, à Swift il ressemble:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent
[chemin lastPathComponent] ou [path [pathComponents] LastObject]. Les deux donnent 'thefile.ext'. Il existe une méthode [path pathExtension] pour obtenir 'ext' mais pas la même chose pour le nom de fichier. – Anton