我正在将Windows应用程序移植到OSX,需要获取用户的家,文档和音乐目录。它是在Windows上使用SHGetFolderPath
WinAPI调用完成的。
答案 0 :(得分:3)
您可以通过查看环境变量HOME
(例如,来自shell的“echo $HOME
”或来自C的getenv
)来获取用户自己的主目录。对于其他用户的主目录,您可以使用getpwnam
或getpwuid
(请参阅其联机帮助页以获取更多详细信息)来检索其主目录。对于其他目录,您可以尝试使用Carbon API FSFindFolder。
答案 1 :(得分:3)
我知道你不想使用Objective-C,但这是一个如何用Objective-C做的例子:
static NSString *PathForUserDirectory(NSSearchPathDirectory directory) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(directory, NSUserDomainMask, YES);
if ([paths count] > 0) {
return [paths objectAtIndex:0];
}
return nil;
}
像这样使用:
NSLog(@"Library folder: %@", PathForUserDirectory(NSLibraryDirectory));
将打印当前用户库目录的完整POSIX路径。以下是您可以搜索的其他目录的参考:
答案 2 :(得分:2)
致电NSSearchPathForDirectoriesInDomains
或FSFindFolder
。