Listare file in maniera ricorsiva in Rust con walkdir

Mattepuffo's logo
Listare file in maniera ricorsiva in Rust con walkdir

Listare file in maniera ricorsiva in Rust con walkdir

Rust mette già a disposizione delle funzioni per lista una directory, ma non l'ho trovata di facile ustilizzo.

Invece ho trovato molto semplice usare walkdir!

Prima di tutto aggiungetela come dipendenza nel Cargo.toml:

[dependencies]
walkdir = "2.3.2"

Qui sotto un codice di esempio in cui visualiziamo anche il numero totale di file trovati, e listiamo solo i file che non sono cartelle:

extern crate walkdir;

use walkdir::WalkDir;

fn main() {
    let dir = "/documenti";

    let count_file = WalkDir::new(dir).into_iter().count();

    println!("Ci sono un totale di {} files", count_file);
    println!();

    for file in WalkDir::new(dir)
        .into_iter()
        .filter_map(|file| file.ok()) {
        if file.metadata().unwrap().is_file() {
            println!("{}", file.path().display());
        }
    }
}

Enjoy!


Condividi su Facebook

Commentami!