Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. use std::env;
  2. use std::path::Path;
  3. use std::fs;
  4.  
  5. fn main() {
  6. let args: Vec<String> = env::args().collect();
  7. if args.len() < 2 {
  8. println!("Invalid argumen!.\nCoba jalankan seperti ini: rename_book /tmp");
  9. std::process::exit(1);
  10. }
  11.  
  12. let folder_name = &args[1];
  13. if !folder_exists(folder_name.to_string()) {
  14. println!("Path folder tidak ada/Invalid!.");
  15. std::process::exit(1);
  16. }
  17.  
  18. if let Ok(files) = get_files(folder_name.to_string()) {
  19. for file in files {
  20. let paths = Path::new(&file);
  21. if !paths.is_file() {
  22. continue;
  23. }
  24.  
  25. let fname = match paths.file_name() {
  26. Some(fname1) =>
  27. match fname1.to_str() {
  28. Some(name) => name,
  29. None => "",
  30. },
  31. None => "",
  32. };
  33.  
  34. let ext = match paths.extension() {
  35. Some(val) => match val.to_str() {
  36. Some(item) => item,
  37. None => "",
  38. },
  39. None => "",
  40. };
  41.  
  42. let parent = match paths.parent() {
  43. Some(name) => match name.to_str() {
  44. Some(val) => val,
  45. None => "",
  46. },
  47. None => "",
  48. };
  49.  
  50. if ext == "rar" && fname.contains("Letmeread.net_") {
  51. let new_name = format!("{}/{}", parent.to_owned(), &fname.replace("Letmeread.net_", ""));
  52. let _ = fs::rename(&file, &new_name);
  53. println!("Merubah nama '{}' menjadi '{}'", file, new_name);
  54. }
  55. }
  56. }
  57. }
  58.  
  59. fn folder_exists(name: String) -> bool {
  60. if name.trim() == "" {
  61. return false;
  62. }
  63.  
  64. let dir = Path::new(&name);
  65. dir.exists()
  66. }
  67.  
  68. fn get_files(dirname: String) -> std::io::Result<Vec<String>> {
  69. let mut res: Vec<String> = Vec::new();
  70.  
  71. for entry in fs::read_dir(dirname)? {
  72. let dir = entry?;
  73. res.push(dir.path().display().to_string());
  74. }
  75. Ok(res)
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement