Rust:
Проверка существования директории
Как:
Стандартная библиотека Rust делает эту задачу простой с помощью std::path::Path
и std::fs
:
use std::path::Path;
fn main() {
let path = Path::new("/some/directory");
if path.exists() && path.is_dir() {
println!("Директория существует!");
} else {
println!("Директория не существует.");
}
}
Пример вывода, если директория существует:
Директория существует!
Пример вывода, если директория не существует:
Директория не существует.
Погружение в детали:
Исторически операции с файлами требовали более многословной обработки ошибок, что делало код громоздким. Rust упрощает это с помощью кратких методов, которые “просто работают”. Существуют альтернативы, вроде использования команд оболочки или других библиотек, но они не так интегрированы. Метод exists()
проверяет только наличие, не уточняя, является ли это директорией или файлом; используйте его вместе с is_dir()
для директорий. Эти методы внутренне используют системные вызовы ОС для эффективного запроса файловой системы.
См. также:
- Документация Rust по Path: https://doc.rust-lang.org/std/path/struct.Path.html
- Документация модуля fs в Rust: https://doc.rust-lang.org/std/fs/
- Обработка ошибок в Rust: https://doc.rust-lang.org/book/ch09-00-error-handling.html