# Function std::env::home_dir

1.0.0 · source ·

    pub fn home_dir() -> Option<PathBuf>

👎Deprecated since 1.29.0: This function’s behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
Expand description

Returns the path of the current user’s home directory if known.

## Unix

- Returns the value of the ‘HOME’ environment variable if it is set (including to an empty string).
- Otherwise, it tries to determine the home directory by invoking the `getpwuid_r` function using the UID of the current user. An empty home directory field returned from the `getpwuid_r` function is considered to be a valid value.
- Returns `None` if the current user has no entry in the /etc/passwd file.

## Windows

- Returns the value of the ‘HOME’ environment variable if it is set (including to an empty string).
- Otherwise, returns the value of the ‘USERPROFILE’ environment variable if it is set (including to an empty string).
- If both do not exist, `GetUserProfileDirectory` is used to return the path.

## Deprecation

This function is deprecated because the behaviour on Windows is not correct. The ‘HOME’ environment variable is not standard on Windows, and may not produce desired results; for instance, under Cygwin or Mingw it will return `/home/you` when it should return `C:\Users\you`.

## Examples

    use std::env;

    match env::home_dir() {
        Some(path) => println!("Your home directory, probably: {}", path.display()),
        None => println!("Impossible to get your home dir!"),
    }

Run