From dfb83af83e547a67b2372c6af572f8bd8be2fbfe Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Mon, 22 Jul 2019 00:22:56 +0800 Subject: [PATCH] add huge file scan --- src/main.rs | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index bcaea92..afd14c3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,7 +21,7 @@ fn main() { let mut version = false; let mut target = String::from("text"); let mut huge_file_size = String::from("100M"); - let mut dir = String::new(); + let mut dir = String::from("."); { let mut ap = ArgumentParser::new(); ap.set_description("finding - command line find tool."); @@ -37,6 +37,39 @@ fn main() { return; } + let dir_path = match get_absolute_path(&dir) { + None => { + print_message(MessageType::ERROR, &format!("Cannot find dir: {}", dir)); + return; + }, + Some(path) => path, + }; + match target.as_str() { + "huge" | "hugefile" => { + walk_dir(&dir_path, &|_, _| (), &|p| { + match p.metadata() { + Err(_) => (), + Ok(metadata) => { + let len = metadata.len(); + if len > 100 * 1024 * 1024 { + print_lastline(""); + //println!(); + print_message(MessageType::OK, &format!("{:?}: {}", p, get_display_size(len as i64))); + } + }, + } + }, &|p| { + match p.to_str() { + None => (), + Some(p_str) => print_lastline(&format!("Scanning: {}", p_str)), + } + true + }).unwrap_or(()); + return; + }, + _ => (), + } + // -------------------------------------------------------------------------------------------------------- println!("{:?}", get_home_path()); println!("{:?}", get_absolute_path("."));