Rust:
Tarkistetaan, onko hakemisto olemassa

Kuinka:

Rustin standardikirjasto (std) sisältää toiminnallisuuden hakemiston olemassaolon tarkistamiseksi std::path::Path ja std::fs moduulien kautta. Tässä on yksinkertainen esimerkki käyttäen Rustin standardimenetelmää:

use std::path::Path;

fn main() {
    let path = Path::new("/polku/hakemistoon");
    if path.exists() && path.is_dir() {
        println!("Hakemisto on olemassa.");
    } else {
        println!("Hakemistoa ei ole olemassa.");
    }
}

Esimerkkilähtö, olettaen että hakemisto on olemassa:

Hakemisto on olemassa.

Monimutkaisemmissa skenaarioissa tai laajennetuissa ominaisuuksissa (kuten asynkroninen tiedostojärjestelmän toiminnot) saatat harkita kolmannen osapuolen kirjaston, kuten tokion, käyttämistä sen asynkronisen fs-moduulin kanssa, erityisesti jos työskentelet asynkronisessa ympäristössä. Näin voisit saavuttaa saman tokion kanssa:

Lisää ensin tokio Cargo.toml-tiedostoosi:

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

Käytä sitten tokio::fs:ää tarkistaaksesi hakemiston olemassaolon asynkronisesti:

use tokio::fs;

#[tokio::main]
async fn main() {
    let path = "/polku/hakemistoon";
    match fs::metadata(path).await {
        Ok(metadata) => {
            if metadata.is_dir() {
                println!("Hakemisto on olemassa.");
            } else {
                println!("Polku on olemassa, mutta se ei ole hakemisto.");
            }
        },
        Err(_) => println!("Hakemistoa ei ole olemassa."),
    }
}

Esimerkkilähtö, olettaen että hakemistoa ei ole olemassa:

Hakemistoa ei ole olemassa.

Nämä esimerkit korostavat, kuinka Rust ja sen ekosysteemi tarjoavat sekä synkronisia että asynkronisia lähestymistapoja hakemiston olemassaolon tarkistuksiin, palvelemalla laajaa valikoimaa ohjelmistokehityksen tarpeita.