如何在macOS中获取用户特殊文件夹的路径?

时间:2017-01-10 09:10:22

标签: objective-c swift macos

是否有任何API可以获取用户的特殊文件夹,例如macOS中的“下载”或“文档”文件夹?

3 个答案:

答案 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]
}()
相关问题