我正在编写一个func来编辑Users / johnDoe目录中的文本文件。
let filename = "random.txt"
let filePath = "/Users/johnDoe"
let replacementText = "random bits of text"
do {
try replacementText.write(toFile: filePath, atomically: true, encoding: .utf8)
}catch let error as NSError {
print(error: + error.localizedDescription)
}
但我希望能够拥有普遍的道路。像
这样的东西let fileManager = FileManager.default
let downloadsURL = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first! as NSURL
let downloadsPath = downloadsURL.path
但是对于JohnDoe文件夹。我还没有找到有关如何执行此操作的任何文档。我能找到的最接近的东西是使用NSHomeDirectory()。而且我不确定如何在这种情况下使用它。
当我尝试添加它时......
let fileManager = FileManager.default
let downloadsURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let downloadsPath = downloadsURL.path
我收到错误:
"无法转换类型'字符串'的值预期参数类型' FileManager.SearchPathDirectory'"
我已经尝试过了.NSHomeDirectory,.NSHomeDirectory(),NShomeDirectory,NShomeDirectory()
答案 0 :(得分:17)
您可以使用FileManager属性homeDirectoryForCurrentUser
let homeDirURL = FileManager.default.homeDirectoryForCurrentUser
如果您需要它使用早于10.12的操作系统版本,您可以使用
let homeDirURL = URL(fileURLWithPath: NSHomeDirectory())
print(homeDirURL.path)
答案 1 :(得分:2)
应该有一种更简单的方法,但是 - 最糟糕的是 - 这应该有效:
let filePath = NSString(string: "~").expandingTildeInPath
答案 2 :(得分:-1)
也许
paste0(fixedApts, collapse = "")
它被列为" beta"但是,10.12。