Løst: Hent alle filer i mappen

Sidste ændring: 09/13/2023

Rustprogrammering står som et open source-system, designet med en intention om at tilbyde både ydeevne og sikkerhed. En af dens mest anerkendte funktioner er dens evne til at administrere hukommelsen på en sikker måde uden behov for en skraldeopsamler. Kort sagt er Rust et ganske kraftfuldt systemprogrammeringssprog, der tilbyder kodeadgang på lavt niveau og udføres også med høj hastighed. I denne sammenhæng vil vi diskutere, hvordan man får alle filer i en mappe ved hjælp af Rust.

Hentning af filer i en mappe ved hjælp af Rust

For at udføre opgaven med at hente alle filer fra en mappe, skal den std::fs modul er ansat. Dette modul kommer med en funktion kaldet read_dir(), som specifikt bruges til at læse indholdet af en mappe.

brug std::fs;

fn main() {
lad stier = fs::read_dir(“/sti/til/bibliotek”).unwrap();

for sti i stier {
println!(“Navn: {}”, path.unwrap().path().display())
}
}

Forklaring af kodekset

Rustkoden, der er angivet her, er ret ligetil. I første omgang importeres fs-modulet fra Rust-standardbiblioteket. fs-modulet indeholder flere funktioner relateret til filsystemoperationer.

Dernæst bruger vi inden for hovedfunktionen read_dir() funktion leveret af fs-modulet til at læse bibliotekets indhold. Det er vigtigt at bemærke, at stien til mappen er angivet som en hårdkodet streng, som kræver justering i henhold til dine præferencer.

read_dir() funktion returnerer en iterator over elementerne (både filer og mapper) i den angivne mappe. Hvert element i denne iterator er en Resultat der enten indeholder en DirEntry (når elementet kan tilgås med succes) eller en fejl.

Vi bruger pak ud () funktion til at håndtere disse resultater og få adgang til de faktiske DirEntry-værdier. Bemærk dog at pak ud () ville gå i panik ved forekomsten af ​​en fejl, og derfor anbefales det ikke til produktionskode. At implementere korrekte fejlhåndteringsforanstaltninger her ville være mere ideelt.

Den sidste del af koden består af en løkke, der itererer over de afgivne stier. For hver sti udskriver vi filnavnet ved at få adgang til stien til DirEntry og vise det til konsollen.

Andre funktioner og biblioteker til biblioteksadgang i Rust

Ud over std::fs-modulet, der blev brugt i eksemplet, leverer Rust ecosystem også yderligere biblioteker som f.eks. walkdir og kloden som kan bruges til mere komplekse mappe- og filsystemoperationer, som at gå i et mappetræ eller matche stimønstre.

Walkdir biblioteket tilbyder funktioner til rekursivt at krydse mapper, følge symbolske links og muligheden for at tilpasse gennemgangen ved at springe mapper over. Glob, på den anden side, kan bruges til at matche stimønstre, hvilket kan være meget nyttigt i operationer, hvor specifikke typer filer skal vælges fra en mappe.

Relaterede indlæg: