Function std::fs::try_exists

source · []
pub fn try_exists<P: AsRef<Path>>(path: P) -> Result<bool>
🔬 This is a nightly-only experimental API. (fs_try_exists #83186)
Expand description

Returns Ok(true) if the path points at an existing entity.

This function will traverse symbolic links to query information about the destination file. In case of broken symbolic links this will return Ok(false).

As opposed to the Path::exists method, this one doesn’t silently ignore errors unrelated to the path not existing. (E.g. it will return Err(_) in case of permission denied on some of the parent directories.)

Note that while this avoids some pitfalls of the exists() method, it still can not prevent time-of-check to time-of-use (TOCTOU) bugs. You should only use it in scenarios where those bugs are not an issue.

Examples

#![feature(fs_try_exists)]
use std::fs;

assert!(!fs::try_exists("does_not_exist.txt").expect("Can't check existence of file does_not_exist.txt"));
assert!(fs::try_exists("/root/secret_file.txt").is_err());
Run