如何在沙盒应用程序中获取 /Users/username/Downloads 路径?

how to get /Users/username/Downloads path in a sandboxed app?

我所做的是将 com.apple.security.files.downloads.read-write 设置为 true,并查阅了 Apple Sandbox 相关文档,但我不知道如何获取下载文件夹路径,我得到的仍然是这样的容器路径:/Users/username/Library/Containers/com.errpro.Snell/Data/Downloads ,我使用的方法是NSSearchPathForDirectoriesInDomains。我见过有人使用 getpwent 来获取路径,但似乎不合适。任何帮助将不胜感激。

您应该使用方法 URLForDirectory。此方法找到当前用户的名称并将其插入 URL 路径。

NSFileManager       *fm = [NSFileManager defaultManager];
NSURL               *downloadsURL;  

downloadsURL = [fm URLForDirectory:NSDownloadsDirectory
                   inDomain:NSUserDomainMask appropriateForURL:nil
                   create:YES error:nil];

Swift 5

do {
     let url = try FileManager.default.url(for: FileManager.SearchPathDirectory.downloadsDirectory, in: FileManager.SearchPathDomainMask.userDomainMask, appropriateFor: nil, create: true)
} catch{
      print(error)
}