Jul. 14th, 2024
2024年 6月 9日

Post: OS X: How to get the path of Home directory

OS X: How to get the path of Home directory

Published 12:04 Apr 12, 2016.

Created by @ezra. Categorized in #Programming, and tagged as #macOS.

Source format: Markdown

Table of Content

We all know that NSHomeDirectory() is retuning the sandbox root (not the home directory), [@"~" stringByExpandingTildeInPath] is doing the same thing.

This /Users/username/Library/Containers/appID/Data is what's being returned.

The only thing its really good for is setting a sane default to the file open/save dialogs. Right now, if we set it to NSHomeDirectory() its not very user friendly. Most people don't even know what the Library folder is.

So, how do we get /Users/username/?

Here's a example:

// MXCocoaHelper.m
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <assert.h>

NSString * NSRealHomeDirectory(void) {
    struct passwd *pw = getpwuid(getuid());
    return [NSString stringWithUTF8String:pw->pw_dir];

This gives you the path to the user's home, but does not automatically give you access to that folder. You can use this path for:

  • Providing a sane default folder for the open/save dialogs
  • Detecting whether you are in a sandbox, by comparing the result to NSHomeDirectory()
Pinned Message
I'm looking for a SOFTWARE PROJECT DIRECTOR / SOFTWARE R&D DIRECTOR position in a fresh and dynamic company. I would like to gain the right experience and extend my skills while working in great teams and big projects.
Feel free to contact me.
For more information, please view online résumé or download PDF
本人正在寻求任职 软件项目经理 / 软件技术经理 岗位的机会, 希望加⼊某个新鲜⽽充满活⼒的公司。
如有意向请随时 与我联系
更多信息请 查阅在线简历下载 PDF