2015-08-03 26 views
50

Wie den Dateinamen aus dem angegebenen Dateipfad Zeichenfolge abgerufen werden?So erhalten Sie den Dateinamen aus dem Dateipfad in swift

Zum Beispiel, wenn ich eine Filepath Zeichenfolge als

file:///Users/DeveloperTeam/Library/Developer/CoreSimulator/Devices/F33222DF-D8F0-448B-A127-C5B03C64D0DC/data/Containers/Data/Application/5D0A6264-6007-4E69-A63B-D77868EA1807/tmp/trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV 

und ich möchte das Rückergebnis erhalten, wie

trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV 

Vielen Dank für Ihre Hilfe.

Antwort

85

Objective C

NSString* theFileName = [string lastPathComponent] 

Swift

let theFileName = (string as NSString).lastPathComponent 
+0

Wie es in geschickter zu tun? Vielen Dank. – Ralph

+1

Entschuldigung, Sie brauchen die Erweiterung auch ... rite ... wird jetzt aktualisiert –

+0

Vielen Dank. Ich habe es zur Arbeit gebracht! – Ralph

3

Versuchen Sie, diese

let filename: String = "your file name" 
let pathExtention = filename.pathExtension 
let pathPrefix = filename.stringByDeletingPathExtension 

Hoffe, es hilft.

19

Swift 2:

var file_name = NSURL(fileURLWithPath: path_to_file).lastPathComponent! 
+0

Mit dieser Methode wird der Compiler sagt zu verwenden, wenn Sie 'lastPathComponent' auf einem schnellen' String' aufrufen (im Gegensatz zu "NSString"). –

17

SWIFT 3.x oder SWIFT 4: Kürzeste und sauberste Weg, dies zu tun, ist unten. In diesem Beispiel url Variable Art von URL wir auf diese Weise einen Menschen lesbares String Ergebnis der vollständigen Dateinamen mit der Endung wie My file name.txt und Nicht wie My%20file%20name.txt

// Result like: My file name.txt 
let fileName = url.lastPathComponent 
+1

Dies gibt Asset.JPG immer für Bilder zurück. –

+0

Siehe die Swift 2 Antwort, die Swift 3 enthält und kohärenter ist. –

+0

Mine auch - @HarshNigam –

0

Wenn Sie die aktuellen Dateinamen können so erhalten mögen wie für die Protokollierung verwende ich das.

Swift 4

URL(fileURLWithPath: #file).lastPathComponent 
Verwandte Themen