Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmFsEx 358 of 373 menu
◀ ▶

Проверка существования в Rust

Сведения о пути говорят, есть ли он, и отдельно файл это или папка. Команда метаданных возвращает результат: при удаче внутри лежит описание объекта, при отсутствии пути - сбой, который можно разобрать.

Проверим существующий файл и ответ для несуществующего пути:

use std::fs; use std::io; fn describe(path: &str) -> io::Result<()> { let info = fs::metadata(path)?; if info.is_file() { println!("file"); } else if info.is_dir() { println!("dir"); } else { println!("other"); } Ok(()) } fn main() -> io::Result<()> { fs::write("note.txt", "x")?; describe("note.txt")?; Ok(()) }

Если путь не найден, результат будет сбоем. Разберем его отдельно:

use std::fs; fn main() { match fs::metadata("missing.txt") { Ok(info) => { if info.is_file() { println!("file"); } } Err(err) => println!("{}", err), } }

Дан путь:

let path = "data";

Создайте папку, запросите метаданные и выведите "dir", если это каталог.

Дан путь:

let path = "gone.txt";

Запросите метаданные и выведите текст сбоя, если объекта нет.

Скажите, чем отличается сбой отсутствия от удачного ответа с флагом файла.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить