是否有任何API可以获取用户的特殊文件夹,例如macOS中的“下载”或“文档”文件夹?
答案 0 :(得分:4)
根据我的经验,我通常用于获取主目录路径,如下例所示。
第一道:
NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDesktopDirectory, NSUserDomainMask, YES);
NSString * desktopPath = [paths objectAtIndex:0];
桌面版: NSDesktopDirectory
对于文档: NSDocumentDirectory
下载次数: NSDownloadsDirectory
第二路:
不是最好的方法,但我们也可以通过这种方法获得路径。
对不同语言使用本地化。
$当前用户的主目录:
[NSURL fileURLWithPath:NSHomeDirectory()];
$ Home / Desktop
[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"]];
$ Home / Documents:
[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]];
$ Home / Downloads:
[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Downloads"]];
希望这可以帮助您找到特殊的文件夹路径。
答案 1 :(得分:2)
正如其他人已经提到的那样,一种更现代的方法是使用URL
来检索NSFileManager
:
NSURL *desktopUrl = [NSFileManager.defaultManager URLsForDirectory:NSDesktopDirectory inDomains:NSUserDomainMask].firstObject;
答案 2 :(得分:0)
适用于 Swift 5.x 的桌面:
var DesktopDir : String = {
let paths = NSSearchPathForDirectoriesInDomains(.desktopDirectory, .userDomainMask, true)
return paths[0]
}()