我正在创建一个函数,用于编辑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
我得到一个错误:
“无法将类型”String“的值转换为预期的参数类型”FileManager. SearchPathDirectory“
我试过了.NSHomeDirectory,.NSHomeDirectory(),NShomeDirectory,NShomeDirectory()
5条答案
按热度按时间qv7cva1a1#
您可以使用FileManager属性homeDirectoryForCurrentUser
如果您需要它与比10.12更早的OS版本一起工作,您可以使用
6yt4nkrj2#
应该有一个更简单的方法,但在最坏的情况下,这应该是可行的:
1zmg4dgp3#
Swift 5(可能更低)
1tuwyuhd4#
以下解决方案在沙盒应用中也能正常工作:
沙盒应用程序上的测试解决方案:
ncecgwcz5#
也许吧
不过,它被列为10.12的“测试版”。