如何在Rust中列出目录的文件?

时间:2014-09-27 15:04:07

标签: rust

如何列出Rust中目录的所有文件?我正在寻找相当于以下Python代码。

files = os.listdir('./')

3 个答案:

答案 0 :(得分:54)

此处an example

use std::fs;

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

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

它将简单地遍历文件并打印出他们的名字。

答案 1 :(得分:13)

你也可以使用glob,这是明确的目的。

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

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

答案 2 :(得分:3)

这可以通过glob完成。尝试this on the playground

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

您可能会看到source


对于递归遍历目录,可以使用walkdir条板箱(Playground):

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());
        }
    }
}

另请参见 The Rust Cookbook Directory Traversal部分。