Перевірка наявності директорії

Rust:
Перевірка наявності директорії

Як:

Стандартна бібліотека Rust (std) включає функціональність для перевірки існування директорії за допомогою модулів std::path::Path і std::fs. Ось простий приклад використання стандартного підходу Rust:

use std::path::Path;

fn main() {
    let path = Path::new("/path/to/directory");
    if path.exists() && path.is_dir() {
        println!("Директорія існує.");
    } else {
        println!("Директорія не існує.");
    }
}

Приклад виводу, за умови, що директорія існує:

Директорія існує.

Для більш складних сценаріїв або розширених функцій (як-от асинхронні операції з файловою системою), ви можете розглянути використання сторонньої бібліотеки, наприклад tokio з її асинхронним модулем fs, особливо, якщо ви працюєте в асинхронному рантаймі. Ось як ви могли б досягти того ж з tokio:

Спочатку додайте tokio до вашого Cargo.toml:

[dependencies]
tokio = { version = "1.0", features = ["full"] }

Потім використовуйте tokio::fs, щоб асинхронно перевірити, чи існує директорія:

use tokio::fs;

#[tokio::main]
async fn main() {
    let path = "/path/to/directory";
    match fs::metadata(path).await {
        Ok(metadata) => {
            if metadata.is_dir() {
                println!("Директорія існує.");
            } else {
                println!("Шлях існує, але це не директорія.");
            }
        },
        Err(_) => println!("Директорія не існує."),
    }
}

Приклад виводу, за умови, що директорія не існує:

Директорія не існує.

Ці приклади підкреслюють, як Rust та його екосистема пропонують як синхронні, так і асинхронні підходи до перевірки існування директорій, задовольняючи широкий спектр потреб розробки програмного забезпечення.