rust中的WalkDir的功能:可以列举指定目录下的目录名称及文件名称,包括所有的子目录。下面是示例
一、库的使用
[dependencies]
walkdir="*"
二、代码示例
//extern crate walkdir;
use walkdir::WalkDir;
fn main() {
let path="src\\mymod".to_string();//相对路径
let getfilelist:Vec<String>=getpathandfilename(path);
for p in getfilelist.iter(){
if p.ends_with("rs") || p.ends_with("doc"){
println!("每一个文件:{}", p);
}
}
}
//这里我使用了一个自定义函数
fn getpathandfilename(path:String)->Vec<String>{
let mut myfilenamelist: Vec<String>=vec![];
//只需要文件及对应的路径,不需要空文件夹的名称及路径
for e in WalkDir::new(path).into_iter().filter_map(|e| e.ok()) {
if e.metadata().unwrap().is_file() {
//println!("{}", e.path().display());
myfilenamelist.push(e.path().display().to_string());
}else{
println!("这个是文件夹路径 {}", e.path().display().to_string());
}
}
myfilenamelist
}
三、运行结果
结果如上图。