当前位置: 首页 > 面试题库 >

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

唐法
2023-03-14
问题内容

我正在制作一个可编辑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()


问题答案:

您可以使用FileManager属性homeDirectoryForCurrentUser

let homeDirURL = FileManager.default.homeDirectoryForCurrentUser

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

let homeDirURL = URL(fileURLWithPath: NSHomeDirectory())
print(homeDirURL.path)


 类似资料:
  • 我有一个Web角前端,API网关受Cognito和Lambda保护,用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf 在我的lambda中,我需要获得其他用户的信息,如名字、

  • 问题内容: 我需要输入USER表的USER_ID字段作为另一个表中的外键。因此,我认为我需要在用户登录时启动一个会话。我很难让它在任何地方回显。我能够启动一个会话,该会话允许我回显USERNAME,但无法将其复制为ID。 请帮忙吗?我的处理代码如下。我还粘贴了本节,我暂时尝试对其进行回显以进行测试。 处理脚本: 我希望USER_ID出现在哪里: 问题答案: 使用FETCH_ASSOC而不是FETC

  • 问题内容: 如何获取Java中的用户名/登录名? 这是我尝试过的代码… 我在尝试运行此代码时得到提示。有人可以告诉我我是否朝着正确的方向前进,并帮助我理解问题。 问题答案:

  • 这应该是一个相当直接的任务,但在做了相当多的研究后,我发现很难找到任何方法来做到这一点。

  • 问题内容: 作为管理员,我如何为我自己以外的用户获取API令牌,而无需以他们的身份登录?当我访问用户配置页面时,我看到的只是“令牌已隐藏”,我也无法更改它。 问题答案: 有一个Jenkins系统属性jenkins.security.ApiTokenProperty.showTokenToAdmins。您需要访问主服务器/ OC进程启动才能进行更改。 记录在https://wiki.jenkins-

  • 作为管理员,我如何在不作为用户登录的情况下为自己以外的用户获取API令牌?当我访问用户配置页面时,我看到的只是“令牌被隐藏”,我也无法更改它。