std::env

Function 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!"),
}