See [this at rust-lang-nursery](https://rust-lang-nursery.github.io/rust-cookbook/file/dir.html). ## Recursively stat files This gets the size and modification time, but could easily get other info. This is **ugly**. I'll enquire on a forum about the proper way to write this ```rust use std::fs; use std::path::Path; use std::time; use walkdir::WalkDir; #[derive(Debug)] struct FileInfo { name: String, size: u64, mtime: time::SystemTime, } fn main() { let mut files_info: Vec = Vec::new(); for entry in WalkDir::new(".") .follow_links(false) .into_iter() .filter_map(|e| e.ok()) { let path = entry.path(); if let Ok(metadata) = entry.metadata() { if ! entry.path_is_symlink() { if let Ok(mtime) = metadata.modified() { let size = metadata.len(); if let Some(name) = path.as_os_str().to_str() { files_info.push( FileInfo { name: name.to_string(), size, mtime } ) } } } } } for entry in files_info { println!("{:?}",entry); } } ```