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

如果路径指向现有实体,则返回 Ok(true)

该函数将遍历符号链接以查询有关目标文件的信息。 如果符号链接断开,则将返回 Ok(false)

Path::exists 方法相反,如果验证路径存在或不存在,这只会返回 Ok(true)Ok(false)

如果既不能确认也不能否认它的存在,则将传播 Err(_)。 这可能是这种情况,例如 对其中一个父目录的列表权限被拒绝。

请注意,虽然这避免了 exists() 方法的一些缺陷,但它仍然无法防止时间检查到使用时间 (TOCTOU) 错误。 您应该只在这些错误不是问题的情况下使用它。

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