我正在搜索预定义的函数,以便从包含文件名的路径中获取路径。因此,我没有获取文件名,而是想要其他部分。
当然,我可以像我自己一样:
func PathOnly() -> String {
let n = NSURL(fileURLWithPath: self).lastPathComponent?.characters.count
return self.Left(self.characters.count - n!)
}
当扩展String时,为什么重新发明轮子? :-) 有什么想法吗?
答案 0 :(得分:21)
NSString
方法stringByDeletingLastPathComponent
和NSURL
方法
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
Swift 3的更新:
let url = URL(fileURLWithPath: "/foo/bar/file.text")
let dirUrl = url.deletingLastPathComponent()
print(dirUrl.path)
// Output: /foo/bar