pub struct BaseDirs { /* fields omitted */ }
BaseDirs
provides paths of user-invisible standard directories, following the conventions of the operating system the library is running on.
To compute the location of cache, config or data directories for individual projects or applications, use ProjectDirs
instead.
All examples on this page are computed with a user named Alice.
use directories::BaseDirs;
if let Some(base_dirs) = BaseDirs::new() {
base_dirs.config_dir();
}
Creates a BaseDirs
struct which holds the paths to user-invisible directories for cache, config, etc. data on the system.
The returned struct is a snapshot of the state of the system at the time new()
was invoked.
Panics if the home directory cannot be determined. See home_dir
.
Returns the path to the user's home directory.
Platform | Value | Example |
Linux | $HOME | /home/alice |
macOS | $HOME | /Users/Alice |
Windows | {FOLDERID_Profile} | C:\Users\Alice |
On Linux and macOS, this function uses std::env::home_dir
to
determine the home directory:
- Use
$HOME
if it is set.
- If
$HOME
is not set, the function getpwuid_r
is used to determine
the home directory of the current user.
- If this also fails, creation of
BaseDirs
panics.
On Windows, this function retrieves the user profile folder using
SHGetKnownFolderPath
.
All the examples on this page mentioning $HOME
use this behavior.
Returns the path to the user's cache directory.
Platform | Value | Example |
Linux | $XDG_CACHE_HOME or $HOME/.cache | /home/alice/.cache |
macOS | $HOME/Library/Caches | /Users/Alice/Library/Caches |
Windows | {FOLDERID_LocalAppData} | C:\Users\Alice\AppData\Local |
Returns the path to the user's config directory.
Platform | Value | Example |
Linux | $XDG_CONFIG_HOME or $HOME/.config | /home/alice/.config |
macOS | $HOME/Library/Preferences | /Users/Alice/Library/Preferences |
Windows | {FOLDERID_RoamingAppData} | C:\Users\Alice\AppData\Roaming |
Returns the path to the user's data directory.
Platform | Value | Example |
Linux | $XDG_DATA_HOME or $HOME/.local/share | /home/alice/.local/share |
macOS | $HOME/Library/Application Support | /Users/Alice/Library/Application Support |
Windows | {FOLDERID_RoamingAppData} | C:\Users\Alice\AppData\Roaming |
Returns the path to the user's local data directory.
Platform | Value | Example |
Linux | $XDG_DATA_HOME or $HOME/.local/share | /home/alice/.local/share |
macOS | $HOME/Library/Application Support | /Users/Alice/Library/Application Support |
Windows | {FOLDERID_LocalAppData} | C:\Users\Alice\AppData\Local |
Returns the path to the user's executable directory.
Platform | Value | Example |
Linux | $XDG_BIN_HOME or $XDG_DATA_HOME/../bin or $HOME/.local/bin | /home/alice/.local/bin |
macOS | – | – |
Windows | – | – |
Returns the path to the user's runtime directory.
Platform | Value | Example |
Linux | $XDG_RUNTIME_DIR | /run/user/1001/ |
macOS | – | – |
Windows | – | – |
Formats the value using the given formatter. Read more
Performs copy-assignment from source
. Read more