Ratkaistu: hae kaikki tiedostot hakemistoon

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

Rust-ohjelmointi on avoimen lähdekoodin järjestelmä, joka on suunniteltu tarjoamaan sekä suorituskykyä että turvallisuutta. Yksi sen tunnetuimmista ominaisuuksista on sen kyky hallita muistia turvallisesti ilman roskankerääjää. Yksinkertaisesti sanottuna Rust on melko tehokas järjestelmäohjelmointikieli, joka tarjoaa matalan tason koodin pääsyn ja suorittaa myös suurella nopeudella. Tässä yhteydessä aiomme keskustella siitä, kuinka saada kaikki tiedostot hakemistoon Rustilla.

Tiedostojen saaminen hakemistoon Rustin avulla

Suorittaaksesi tehtävän hakea kaikki tiedostot hakemistosta, std::fs moduulia käytetään. Tässä moduulissa on toiminto nimeltä read_dir(), jota käytetään erityisesti hakemiston sisällön lukemiseen.

käytä std::fs;

fnmain() {
anna polut = fs::read_dir("/polku/hakemistoon").unwrap();

polulle poluissa {
println!("Nimi: {}", polku.unwrap().path().display())
}
}

Säännöstön selitys

Tässä annettu Rust-koodi on melko suoraviivainen. Aluksi tuodaan fs-moduuli Rust-standardikirjastosta. Fs-moduuli sisältää useita tiedostojärjestelmän toimintoihin liittyviä toimintoja.

Seuraavaksi käytämme päätoiminnossa read_dir() fs-moduulin tarjoama toiminto hakemiston sisällön lukemiseen. On tärkeää huomata, että polku hakemistoon annetaan kovakoodatun merkkijonona, joka vaatii säätöä mieltymystesi mukaan.

- read_dir() funktio palauttaa iteraattorin määritetyn hakemiston kohteiden (sekä tiedostojen että hakemistojen) päälle. Jokainen tämän iteraattorin kohde on a Tulos jossa on joko DirEntry (kun kohdetta voidaan käyttää onnistuneesti) tai virhe.

Käytämme unwrap() toiminto käsittelee näitä tuloksia ja päästä käsiksi todellisiin DirEntry-arvoihin. Huomaa kuitenkin unwrap() joutuisi paniikkiin virheen ilmetessä, eikä sitä siksi suositella tuotantokoodille. Asianmukaisten virheenkäsittelytoimenpiteiden toteuttaminen tässä olisi ihanteellista.

Koodin viimeinen osa koostuu silmukasta, joka toistuu saatujen polkujen yli. Jokaiselle polulle tulostetaan tiedoston nimi käyttämällä polun polkua DirEntry ja näytä se konsoliin.

Muita toimintoja ja kirjastoja hakemistokäyttöön Rustissa

Esimerkissä käytetyn std::fs-moduulin lisäksi Rust-ekosysteemi tarjoaa myös lisäkirjastoja, kuten walkdir ja loraus jota voidaan käyttää monimutkaisempiin hakemisto- ja tiedostojärjestelmän toimintoihin, kuten hakemistopuussa liikkumiseen tai polkukuvioiden sovittamiseen.

Walkdir kirjasto tarjoaa toimintoja hakemistojen rekursiiviseen läpikulkuun, symbolisten linkkien seuraamiseen ja mahdollisuuden mukauttaa läpikulkua ohittamalla hakemistoja. Loraus, toisaalta, voidaan käyttää polkukuvioiden täsmäämiseen, mikä voi olla erittäin hyödyllistä toiminnoissa, joissa tietyntyyppisiä tiedostoja on valittava hakemistosta.

Related viestiä: