Ratkaistu: tarkista, onko tiedosto olemassa

Viimeisin päivitys: 09/13/2023
Kirjoittaja: Rust SourceTrail

Toki, kirjoitetaan artikkeli, jossa tarkistetaan, onko tiedosto olemassa Rustissa:

Tarkistetaan, onko tiedosto olemassa vai ei on yleinen toiminto, joka suoritetaan missä tahansa ohjelmoinnissa. Kuvittele, että sinulla on ohjelma, jonka täytyy lukea tiedosto ja suorittaa joitakin toimintoja sen sisällön perusteella. Ennen kuin käytät tiedostoa, haluat tietää, onko se todella olemassa. Tätä tarkoitusta varten Rust-ohjelmointikieli tarjoaa meille joitain hyödyllisiä toimintoja.

Rustissa meillä on Polun, std::fs (tiedostojärjestelmä) -laatikon alla oleva moduuli, jonka avulla voimme olla vuorovaikutuksessa tiedostopolkujen kanssa. Se tarjoaa useita toimintoja, joista yksi on "exists()"-funktio. Tätä toimintoa käytetään tarkistamaan, osoittaako tietty polku olemassa olevaan tiedostoon tai hakemistoon.

käytä std::polku::Path;

fnmain() {
anna tiedoston_polku = Polku::new("polku_tiedostoon");
if file_path.exists() {
println! ("Tiedosto on olemassa");
} Else {
println!("Tiedostoa ei ole olemassa");
}
}

Koodin ymmärtäminen

Yllä olevassa koodissa tuomme ensin Path-moduulin Rustin vakiokirjastosta. Päätoiminnossa luomme uuden polun, joka osoittaa tiedostoon, jonka haluamme tarkistaa.

`Path::new()` -menetelmä luo uuden polun. Tässä esimerkissä korvaat `”polku_tiedostoon”` tarkastettavan tiedoston todellisella polulla.

Sitten `exists()`-funktiota käytetään tarkistamaan, onko tiedosto olemassa määritetyssä polussa. Jos tiedosto on olemassa, se palauttaa arvon "true", muussa tapauksessa "false". Tämän palautusarvon perusteella konsoliin tulostetaan vastaava viesti.

"std::fs"- ja "Path"-moduulit ruosteessa

Rustissa tiedostojen ja hakemistojen kanssa työskentelyä helpottaa `std::fs` (tiedostojärjestelmä) -moduuli, joka tarjoaa paljon toimintoja tiedostojen käsittelyyn. Tämä moduuli sisältää useita rakenteita, kuten "File" tiedostoista lukemiseen ja tiedostoihin kirjoittamiseen ja "DirEntry" hakemistojen lukemiseen.

Toinen tärkeä rakenne on `Path`, joka edustaa tiedostopolkua järjestelmässä. Tämä "Path"-rakenne tarjoaa useita tapoja käsitellä polkuja, kuten "new()" uuden "Path"-esiintymän luomiseen ja "exists()" tarkistaaksesi, osoittaako annettu polku olemassa olevaan tiedostoon tai hakemistoon.

Ruosteen virheiden käsittely

Rustissa virheiden käsittely on tärkeä osa. Tiedostoja käsiteltäessä voi tapahtua erilaisia ​​virheitä, kuten tiedostoa ei löydy, lupa estetty jne. Rust käyttää tyyppejä "Result" ja "Option" virheiden käsittelyyn.

Tässä tapauksessa, jos polkua ei ole olemassa tai tiedostojen olemassaoloa tarkistettaessa tapahtuu jokin muu virhe, "exists()" -funktio palauttaa vain "false" ilman virhetietoja. Jos kuitenkin tarvitset tarkempia virhetietoja siitä, mikä meni pieleen, voit käyttää "metadata()"-menetelmää, joka palauttaa "Result"-tyypin ja antaa virheen tiedot.

käytä std::fs;

fnmain() {
match fs::metadata("polku_tiedostoon") {
Ok(_) => println!("Tiedosto on olemassa"),
Err(err) => println!("Virhe: {:?}", err),
}
}

Tässä "metadata()" voi palauttaa "Ok" tai "Err". Jos se palauttaa "Ok", se tarkoittaa, että tiedosto on olemassa, ja jos se palauttaa "Err", tapahtui virhe tarkistettaessa tiedoston olemassaoloa, ja virheen tiedot tulostetaan.

Related viestiä: