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