Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. use std::env;
  2. use std::fs::{self,DirEntry};
  3. use std::io;
  4. use std::path::Path;
  5.  
  6. fn main() -> io::Result<()> {
  7. let args : Vec<String> = env::args().collect();
  8. if args.len() == 1 {
  9. dfs(".", & mut "".to_string());
  10. }
  11. else {
  12. dfs(&args[1], & mut "".to_string());
  13. }
  14. Ok(())
  15. }
  16.  
  17. fn dfs(path: &str, blank: & mut String) -> io::Result<()> {
  18. for entry in fs::read_dir(path)? {
  19. let dir = entry?;
  20. let dir_path = dir.path();
  21. let this_path_str = dir_path.to_str().expect("path convert to str error");
  22. let this_path = Path::new(this_path_str);
  23.  
  24. println!("{}|", &blank);
  25. println!("{}{:?}",&blank, dir.file_name());
  26. if this_path.is_dir() {
  27. for i in 0..dir.file_name().len() {
  28. blank.push(' ');
  29. }
  30. dfs(this_path_str, blank);
  31. for i in 0..dir.file_name().len() {
  32. blank.pop();
  33. }
  34. }
  35. }
  36. Ok(())
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement