NSHomeDirectory()
正在重新调整我的沙盒根目录,而不是我的主目录。 [@"~"stringByExpandingTildeInPath]
正在做同样的事情。
这个 /Users/username/Library/Containers/appID/Data
是返回的内容。如何获取 /Users/username/
?
最佳答案
如果你想要用户真实主目录的路径,你可以使用:
char *realHome = getpwuid(getuid())->pw_dir;
完整示例:
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <assert.h>
NSString *RealHomeDirectory() {
struct passwd *pw = getpwuid(getuid());
assert(pw);
return [NSString stringWithUTF8String:pw->pw_dir];
}
这会为您提供用户主页的路径,但不会自动为您提供对该文件夹的访问权限。如评论中所述,您可以将此路径用于:
- 为打开/保存对话框提供一个合理的默认文件夹
- 通过将结果与
NSHomeDirectory()
进行比较,检测您是否处于沙箱中
关于objective-c - 如何在沙盒应用程序中获取用户主目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553390/