Wenn ich NSString
mit /Users/user/Projects/thefile.ext
habe, möchte ich thefile
mit Objective-C-Methoden extrahieren .
Was ist der einfachste Weg, das zu tun?
Wenn ich NSString
mit /Users/user/Projects/thefile.ext
habe, möchte ich thefile
mit Objective-C-Methoden extrahieren .
Was ist der einfachste Weg, das zu tun?
Antworten:
Aus der NSString-Referenz können Sie Folgendes verwenden:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
Der lastPathComponent
Anruf wird zurückgegeben thefile.ext
und stringByDeletingPathExtension
das Erweiterungssuffix wird am Ende entfernt.
lastPathComponent
. Danke dir!
[[[NSFileManager defaultManager] displayNameAtPath:path] stringByDeletingPathExtension]
(Verwenden Sie den gewünschten Dateimanager). Dadurch wird sichergestellt, dass der Dateiname korrekt lokalisiert ist und die Erweiterung entfernt wurde.
NSString *myExtension = [myString pathExtension]
Wenn Sie einen vom Benutzer lesbaren Dateinamen anzeigen, möchten Sie diesen nicht verwenden lastPathComponent
. Übergeben Sie stattdessen den vollständigen Pfad an die displayNameAtPath:
Methode von NSFileManager . Dies macht im Grunde das Gleiche, nur dass der Dateiname korrekt lokalisiert und die Erweiterung basierend auf den Benutzereinstellungen entfernt wird.
Auf die Gefahr hin, Jahre zu spät zu kommen und nicht zum Thema zu gehören - und trotz der hervorragenden Einsicht von @ Marc sieht es in Swift so aus:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent