2016-01-11 38 views
5

我正在尋找一個預定義的函數,用於從包含文件名的路徑獲取路徑。所以,而不是獲取文件名我想另一部分。SWIFT:僅獲取路徑

我當然可以像我一樣自己:

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

時延長字符串,但爲什麼另起爐竈? :-) 任何想法?

回答

13

NSString方法stringByDeletingLastPathComponentNSURL方法 URLByDeletingLastPathComponent做的正是你想要的。

例子:

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 

更新斯威夫特3:

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

謝謝你,是的,它就像預期。 – Peter71