I was working on this code to rename a large chunk of files to a similar name, like png_1 ( mainly for practice not efficiency) and I got the following error:
error: unterminated character literal
--> src\main.rs:14:51
|
14 | let mut var 'static std::path::Display<'_>' = path.unwrap().path().display();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error
error: could not compile `RenameFiles`.
Here is the Code:
use std::{env, fs};
fn main() {
let dir = fs::read_dir("C:\\Users\\feded\\Desktop\\test_rust").unwrap();
let base_name_text = String::from("Enter a base name for the files to edit");
let extension_text = String::from("Enter the extention for the files who's name needs to be edited");
let base_name = input(base_name_text).to_owned();
let extension = input(extension_text);
let mut value = 1;
println!("Old Path names");
for path in fs::read_dir("C:\\Users\\feded\\Desktop\\test_rust").expect("couldn't find specific path") {
let mut strvalue = &value.to_string().to_owned();
let mut var 'static std::path::Display<'_>' = path.unwrap().path().display();
//let mut path: 'static std::path::Display<'_>' = &var;
if var.to_string().contains("C:\\Users\\feded\\Desktop\\test_rust"){
var.to_string().pop();
}
if var.to_string().contains(".jpg"){
println!("{}", var.to_string());
fs::rename(var.to_string(), format!("{}_{}.png", base_name.to_string(), strvalue));
}else if var.to_string().contains(".png"){
println!("{}", var.to_string());
let new_string = base_name + "_" + strvalue + ".png";
fs::rename(var.to_string(), new_string);
}else {
continue;
}
value += 1;
}
}
fn input(text: String) -> String {
use std::io::{stdin,stdout,Write};
let mut input = String::new();
println!("{}", text);
let _=stdout().flush();
stdin().read_line(&mut input).expect("Did not enter a correct string");
if let Some('\n')=input.chars().next_back() {
input.pop();
}
if let Some('\r')=input.chars().next_back() {
input.pop();
}
return input;
}