Метод try_exists
Метод try_exists проверяет, существует ли путь
по указанному адресу. В отличие от метода exists,
который возвращает простое логическое значение, данный
метод возвращает Result<bool, io::Error>. Это
позволяет отличить ситуацию, когда путь действительно
не существует (возвращается Ok(false)), от
ситуации, когда при проверке произошла ошибка доступа
(возвращается Err). Параметров метод не принимает.
Синтаксис
path.try_exists()
Пример
Давайте проверим, существует ли путь к файлу
"abcde.txt" в текущей директории:
use std::path::Path;
fn main()
{
let path = Path::new("abcde.txt");
let res = path.try_exists();
println!("{:?}", res);
}
Если файл существует, результат выполнения кода будет следующим:
Ok(true)
Пример
Давайте проверим несуществующий путь
"12345.txt":
use std::path::Path;
fn main()
{
let path = Path::new("12345.txt");
let res = path.try_exists();
println!("{:?}", res);
}
Результат выполнения кода:
Ok(false)
Пример
Давайте обработаем результат с помощью конструкции
match, чтобы явно разобрать все возможные случаи:
use std::path::Path;
fn main()
{
let path = Path::new("abcde.txt");
match path.try_exists()
{
Ok(true) => println!("path exists"),
Ok(false) => println!("path does not exist"),
Err(e) => println!("error: {}", e),
}
}
Результат выполнения кода:
"path exists"