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 |
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)