如何在沙盒应用程序中获取 /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)
}
我所做的是将 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)
}