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 tokio
n, käyttämistä sen asynkronisen fs
-moduulin kanssa, erityisesti jos työskentelet asynkronisessa ympäristössä. Näin voisit saavuttaa saman tokio
n 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.