目录的 MacOS 路径格式
MacOS path formatting of the dir
我有以下路径(它们是示例),我希望能够得到下面的结果。
/Users/nameUser
/Users
/Users/nameUser/Downloads/nameDir
/Users/nameUser/Documents/nameDir
/Users/nameUser/Desktop/nameDir/nameProject
结果:
/Users/nameUser
/Users/
~/Downloads/nameDir
~/Documents/nameDir
~/Desktop/nameDir/nameProject
FileManager
可以提供主目录路径。因此,您可以检查路径是否以它开头,如果是,则将其替换为波浪号。
func pathWithTilde(_ path: String) -> String {
let homeDir = FileManager.default.homeDirectoryForCurrentUser.path + "/"
if path.starts(with: homeDir) {
return "~/" + path[homeDir.endIndex...]
}
return path
}
更新
原来这已经作为 NSString
的方法存在(尽管它也会将 /Users/nameUser
转换为 ~
)。一点 String
扩展有助于隐藏 NSString
细节。
extension String {
var abbreviatingWithTildeInPath: String {
(self as NSString).abbreviatingWithTildeInPath
}
}
print("/Users/nameUser/Downloads/nameDir".abbreviatingWithTildeInPath)
我有以下路径(它们是示例),我希望能够得到下面的结果。
/Users/nameUser
/Users
/Users/nameUser/Downloads/nameDir
/Users/nameUser/Documents/nameDir
/Users/nameUser/Desktop/nameDir/nameProject
结果:
/Users/nameUser
/Users/
~/Downloads/nameDir
~/Documents/nameDir
~/Desktop/nameDir/nameProject
FileManager
可以提供主目录路径。因此,您可以检查路径是否以它开头,如果是,则将其替换为波浪号。
func pathWithTilde(_ path: String) -> String {
let homeDir = FileManager.default.homeDirectoryForCurrentUser.path + "/"
if path.starts(with: homeDir) {
return "~/" + path[homeDir.endIndex...]
}
return path
}
更新
原来这已经作为 NSString
的方法存在(尽管它也会将 /Users/nameUser
转换为 ~
)。一点 String
扩展有助于隐藏 NSString
细节。
extension String {
var abbreviatingWithTildeInPath: String {
(self as NSString).abbreviatingWithTildeInPath
}
}
print("/Users/nameUser/Downloads/nameDir".abbreviatingWithTildeInPath)