Kam*_*xom 9 path nsfilemanager tilde-expansion home-directory swift
如何在Swift中使用波浪号扩展路径String?我有一个类似的字符串"~/Desktop",我想在NSFileManager方法中使用此路径,这需要将波浪号扩展为"/Users/<myuser>/Desktop".
(这有明显的问题说明问题并不存在,这应该是很容易玛丽萨.有些相似但不令人满意的问题是不能使路径在斯威夫特的文件,简单的方法来读取使用雨燕?本地文件,波浪线的基础在Objective-C的路径)
Kam*_*xom 26
"~/Desktop".stringByExpandingTildeInPath
Run Code Online (Sandbox Code Playgroud)
NSString(string: "~/Desktop").stringByExpandingTildeInPath
Run Code Online (Sandbox Code Playgroud)
NSString(string: "~/Desktop").expandingTildeInPath
Run Code Online (Sandbox Code Playgroud)
另外,您可以像这样获取主目录(返回String/ String?):
NSHomeDirectory()
NSHomeDirectoryForUser("<User>")
Run Code Online (Sandbox Code Playgroud)
在Swift 3和OS X 10.12中,也可以使用它(返回一个URL/ URL?):
FileManager.default().homeDirectoryForCurrentUser
FileManager.default().homeDirectory(forUser: "<User>")
Run Code Online (Sandbox Code Playgroud)
编辑:在Swift 3.1中,这改变了 FileManager.default.homeDirectoryForCurrentUser
返回字符串:
func expandingTildeInPath(_ path: String) -> String {
return path.replacingOccurrences(of: "~", with: FileManager.default.homeDirectoryForCurrentUser.path)
}
Run Code Online (Sandbox Code Playgroud)
返回网址:
func expandingTildeInPath(_ path: String) -> URL {
return URL(fileURLWithPath: path.replacingOccurrences(of: "~", with: FileManager.default.homeDirectoryForCurrentUser.path))
}
Run Code Online (Sandbox Code Playgroud)
如果操作系统低于 10.12,请更换
FileManager.default.homeDirectoryForCurrentUser
Run Code Online (Sandbox Code Playgroud)
和
URL(fileURLWithPath: NSHomeDirectory()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5225 次 |
| 最近记录: |