2016-01-11 5 views
5

Ich suche nach einer vordefinierten Funktion zum Abrufen des Pfades aus einem Pfad einschließlich Dateiname. Also, anstatt den Dateinamen zu erhalten, möchte ich den anderen Teil.SWIFT: Nur Pfad

Natürlich kann ich es wie meine eigenen wie tun:

func PathOnly() -> String { 
    let n = NSURL(fileURLWithPath: self).lastPathComponent?.characters.count 
    return self.Left(self.characters.count - n!) 
} 

wenn String verlängern, aber warum das Rad neu erfinden? :-) Irgendeine Idee?

Antwort

13

Die NSString Methode stringByDeletingLastPathComponent und die NSURL Methode URLByDeletingLastPathComponent genau das tun, was Sie wollen.

Beispiel:

let path = "/foo/bar/file.text" 
let dir = (path as NSString).stringByDeletingLastPathComponent 
print(dir) 
// Output: /foo/bar 


let url = NSURL(fileURLWithPath: "/foo/bar/file.text") 
let dirUrl = url.URLByDeletingLastPathComponent! 
print(dirUrl.path!) 
// Output: /foo/bar 

Update für Swift 3:

let url = URL(fileURLWithPath: "/foo/bar/file.text") 
let dirUrl = url.deletingLastPathComponent() 
print(dirUrl.path) 
// Output: /foo/bar 
+0

Danke, ja, es funktioniert wie erwartet. – Peter71

Verwandte Themen