一尘不染

如何在不知道Swift3中的用户名的情况下获取用户主目录路径(用户/“用户名”)

swift

我正在制作一个可编辑Users / johnDoe Dir中的文本文件的功能。

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()


阅读 254

收藏
2020-07-07

共1个答案

一尘不染

您可以使用FileManager属性homeDirectoryForCurrentUser

let homeDirURL = FileManager.default.homeDirectoryForCurrentUser

如果您需要它与早于10.12的OS版本一起使用,则可以使用

let homeDirURL = URL(fileURLWithPath: NSHomeDirectory())

print(homeDirURL.path)
2020-07-07