Retrieves the full path of a known folder identified by the folder's
KNOWNFOLDERID on Windows systems using SHGetKnownFolderPath and the Known
Folders API.
The Known Folders API first appeared in Windows Vista.
Add this to your Cargo.toml:
[dependencies]
known-folders = "1.4.2"Then resolve well-known directories like this:
use known_folders::{get_known_folder_path, KnownFolder};
let profile_dir = get_known_folder_path(KnownFolder::Profile);You can test this crate works on your platform by running the example:
cargo run --example get_profile_dirknown-folders-rs binds directly to Win32 using windows_sys.
Semver-incompatible windows_sys upgrades can be made in minor releases.
Note that this crate is completely empty on non-Windows platforms.
This crate requires at least Rust 1.60.0. This version can be bumped in minor releases.
This repository uses mise to manage the local
development toolchain declared in mise.toml, including Node.js,
Python, Ruby, Rust, uv, cargo-deny, and zizmor. For Rust, mise installs
the stable toolchain via rustup. Nightly-only tasks in
Rakefile continue to use rustup on demand.
Install the shared toolchain with:
mise installThen install the repo-local npm and Ruby dependencies with:
npm install
bundle installYAML linting runs through the locked uv environment in uv.lock:
uv run yamllint --strict --format github .known-folders-rs is distributed under the terms of either the
MIT License or the
Apache License (Version 2.0).