pub struct UserDirs { /* fields omitted */ }UserDirs provides paths of user-facing standard directories, following the conventions of the operating system the library is running on.
All examples on this page are computed with a user named Alice.
use directories::UserDirs;
if let Some(user_dirs) = UserDirs::new() {
user_dirs.audio_dir();
}
Creates a UserDirs struct which holds the paths to user-facing directories for audio, font, video, etc. data on the system.
The returned value depends on the operating system and is either
Some, containing a snapshot of the state of the system's paths at the time new() was invoked, or
None, if no valid home directory path could be retrieved from the operating system.
To determine whether a system provides a valid $HOME path, please refer to BaseDirs::new
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 |
Returns the path to the user's audio directory.
| Platform | Value | Example |
| Linux | XDG_MUSIC_DIR | /home/alice/Music |
| macOS | $HOME/Music | /Users/Alice/Music |
| Windows | {FOLDERID_Music} | C:\Users\Alice\Music |
Returns the path to the user's desktop directory.
| Platform | Value | Example |
| Linux | XDG_DESKTOP_DIR | /home/alice/Desktop |
| macOS | $HOME/Desktop | /Users/Alice/Desktop |
| Windows | {FOLDERID_Desktop} | C:\Users\Alice\Desktop |
Returns the path to the user's document directory.
| Platform | Value | Example |
| Linux | XDG_DOCUMENTS_DIR | /home/alice/Documents |
| macOS | $HOME/Documents | /Users/Alice/Documents |
| Windows | {FOLDERID_Documents} | C:\Users\Alice\Documents |
Returns the path to the user's download directory.
| Platform | Value | Example |
| Linux | XDG_DOWNLOAD_DIR | /home/alice/Downloads |
| macOS | $HOME/Downloads | /Users/Alice/Downloads |
| Windows | {FOLDERID_Downloads} | C:\Users\Alice\Downloads |
Returns the path to the user's font directory.
| Platform | Value | Example |
| Linux | $XDG_DATA_HOME/fonts or $HOME/.local/share/fonts | /home/alice/.local/share/fonts |
| macOS | $HOME/Library/Fonts | /Users/Alice/Library/Fonts |
| Windows | – | – |
Returns the path to the user's picture directory.
| Platform | Value | Example |
| Linux | XDG_PICTURES_DIR | /home/alice/Pictures |
| macOS | $HOME/Pictures | /Users/Alice/Pictures |
| Windows | {FOLDERID_Pictures} | C:\Users\Alice\Pictures |
Returns the path to the user's public directory.
| Platform | Value | Example |
| Linux | XDG_PUBLICSHARE_DIR | /home/alice/Public |
| macOS | $HOME/Public | /Users/Alice/Public |
| Windows | {FOLDERID_Public} | C:\Users\Public |
Returns the path to the user's template directory.
| Platform | Value | Example |
| Linux | XDG_TEMPLATES_DIR | /home/alice/Templates |
| macOS | – | – |
| Windows | {FOLDERID_Templates} | C:\Users\Alice\AppData\Roaming\Microsoft\Windows\Templates |
Returns the path to the user's video directory.
| Platform | Value | Example |
| Linux | XDG_VIDEOS_DIR | /home/alice/Videos |
| macOS | $HOME/Movies | /Users/Alice/Movies |
| Windows | {FOLDERID_Videos} | C:\Users\Alice\Videos |
Formats the value using the given formatter. Read more
Performs copy-assignment from source. Read more