Get All Files With A Certain Extension Recursively In Rust
```cargo
[package]
edition = "2021"
[dependencies]
walkdir = "2"
```
use std::path::PathBuf;
use walkdir::WalkDir;
fn main() {
let files = get_files_in_dir_matching_extension_recursively(
"recursive_test/example", vec!["txt"]
);
dbg!(files);
}
fn get_files_in_dir_matching_extension_recursively(dir: &str, exts: Vec<&str>) -> Vec<PathBuf> {
WalkDir::new(dir)
.into_iter()
.filter(|e|
match e.as_ref().unwrap().path().extension() {
Some(x) => exts.contains(&x.to_str().unwrap()),
None => false
}).map(|e| e.unwrap().into_path()).collect()
}
Output:
[/Users/alan/.cargo/target/55/19854259915251/_active_nvim_run:15:5] files = [
"recursive_test/example/.hidden_file_1.txt",
"recursive_test/example/a/2.txt",
"recursive_test/example/a/c/4.txt",
"recursive_test/example/.hidden_file_2.txt",
"recursive_test/example/1.txt",
"recursive_test/example/b/3.txt",
]
-- end of line --