web-dev-qa-db-fra.com

Comment puis-je lister les fichiers d'un répertoire dans Rust?

Comment puis-je lister tous les fichiers d'un répertoire dans Rust? Je recherche l'équivalent du code Python suivant. 

files = os.listdir('./')
28
Graham Lee

Voici un exemple :

use std::fs;

fn main() {
    let paths = fs::read_dir("./").unwrap();

    for path in paths {
        println!("Name: {}", path.unwrap().path().display())
    }
}

Il suffit de parcourir les fichiers et d’imprimer leur nom.

45
Kai Sellgren

Vous pouvez également utiliser glob , ce qui est expressément prévu à cet effet.

extern crate glob;
use self::glob::glob;

let files:Vec<Path> = glob("*").collect();
13
Doug

Essayez ceci sur le terrain de jeu :

extern crate glob;
use glob::glob;
fn main() {
    for e in glob("../*").expect("Failed to read glob pattern") {
        println!("{}", e.unwrap().display());
    }
}

Vous pouvez voir le source


Et pour les répertoires de marche récursivement, essayez ceci sur le terrain de jeu :

extern crate walkdir;
use walkdir::WalkDir;
fn main() {
    for e in WalkDir::new(".").into_iter().filter_map(|e| e.ok()) {
        if e.metadata().unwrap().is_file() {
            println!("{}", e.path().display());
        }
    }
}

Voir walkdir , et Répertoire Traversal

J'espère que ça aide.

1
A.R