Don't crash when found file name which is not valid Unicode
This commit is contained in:
parent
78aa7d531a
commit
3b63798751
|
@ -148,7 +148,13 @@ impl BigFile {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut is_excluded_dir = false;
|
let mut is_excluded_dir = false;
|
||||||
next_folder = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap() + "/";
|
next_folder = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
+ "/";
|
||||||
|
|
||||||
for ed in &self.directories.excluded_directories {
|
for ed in &self.directories.excluded_directories {
|
||||||
if next_folder == *ed {
|
if next_folder == *ed {
|
||||||
|
@ -171,7 +177,11 @@ impl BigFile {
|
||||||
}
|
}
|
||||||
} else if metadata.is_file() {
|
} else if metadata.is_file() {
|
||||||
let mut have_valid_extension: bool;
|
let mut have_valid_extension: bool;
|
||||||
let file_name_lowercase: String = entry_data.file_name().into_string().unwrap().to_lowercase();
|
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
.to_lowercase();
|
||||||
|
|
||||||
// Checking allowed extensions
|
// Checking allowed extensions
|
||||||
if !self.allowed_extensions.file_extensions.is_empty() {
|
if !self.allowed_extensions.file_extensions.is_empty() {
|
||||||
|
@ -188,7 +198,12 @@ impl BigFile {
|
||||||
|
|
||||||
// Checking files
|
// Checking files
|
||||||
if have_valid_extension {
|
if have_valid_extension {
|
||||||
let current_file_name = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap();
|
let current_file_name = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
};
|
||||||
|
|
||||||
// Checking expressions
|
// Checking expressions
|
||||||
let mut found_expression: bool = false;
|
let mut found_expression: bool = false;
|
||||||
|
|
|
@ -230,7 +230,13 @@ impl DuplicateFinder {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut is_excluded_dir = false;
|
let mut is_excluded_dir = false;
|
||||||
next_folder = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap() + "/";
|
next_folder = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
+ "/";
|
||||||
|
|
||||||
for ed in &self.directories.excluded_directories {
|
for ed in &self.directories.excluded_directories {
|
||||||
if next_folder == *ed {
|
if next_folder == *ed {
|
||||||
|
@ -253,7 +259,11 @@ impl DuplicateFinder {
|
||||||
}
|
}
|
||||||
} else if metadata.is_file() {
|
} else if metadata.is_file() {
|
||||||
let mut have_valid_extension: bool;
|
let mut have_valid_extension: bool;
|
||||||
let file_name_lowercase: String = entry_data.file_name().into_string().unwrap().to_lowercase();
|
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
.to_lowercase();
|
||||||
|
|
||||||
// Checking allowed extensions
|
// Checking allowed extensions
|
||||||
if !self.allowed_extensions.file_extensions.is_empty() {
|
if !self.allowed_extensions.file_extensions.is_empty() {
|
||||||
|
@ -270,7 +280,12 @@ impl DuplicateFinder {
|
||||||
|
|
||||||
// Checking files
|
// Checking files
|
||||||
if metadata.len() >= self.minimal_file_size && have_valid_extension {
|
if metadata.len() >= self.minimal_file_size && have_valid_extension {
|
||||||
let current_file_name = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap();
|
let current_file_name = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
};
|
||||||
|
|
||||||
// Checking expressions
|
// Checking expressions
|
||||||
let mut found_expression: bool = false;
|
let mut found_expression: bool = false;
|
||||||
|
|
|
@ -174,7 +174,13 @@ impl EmptyFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut is_excluded_dir = false;
|
let mut is_excluded_dir = false;
|
||||||
next_folder = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap() + "/";
|
next_folder = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
+ "/";
|
||||||
|
|
||||||
for ed in &self.directories.excluded_directories {
|
for ed in &self.directories.excluded_directories {
|
||||||
if next_folder == *ed {
|
if next_folder == *ed {
|
||||||
|
@ -197,7 +203,11 @@ impl EmptyFiles {
|
||||||
}
|
}
|
||||||
} else if metadata.is_file() {
|
} else if metadata.is_file() {
|
||||||
let mut have_valid_extension: bool;
|
let mut have_valid_extension: bool;
|
||||||
let file_name_lowercase: String = entry_data.file_name().into_string().unwrap().to_lowercase();
|
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
.to_lowercase();
|
||||||
|
|
||||||
// Checking allowed extensions
|
// Checking allowed extensions
|
||||||
if !self.allowed_extensions.file_extensions.is_empty() {
|
if !self.allowed_extensions.file_extensions.is_empty() {
|
||||||
|
@ -214,7 +224,12 @@ impl EmptyFiles {
|
||||||
|
|
||||||
// Checking files
|
// Checking files
|
||||||
if metadata.len() == 0 && have_valid_extension {
|
if metadata.len() == 0 && have_valid_extension {
|
||||||
let current_file_name = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap();
|
let current_file_name = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
};
|
||||||
|
|
||||||
// Checking expressions
|
// Checking expressions
|
||||||
let mut found_expression: bool = false;
|
let mut found_expression: bool = false;
|
||||||
|
|
|
@ -173,7 +173,13 @@ impl EmptyFolder {
|
||||||
};
|
};
|
||||||
// If child is dir, still folder may be considered as empty if all children are only directories.
|
// If child is dir, still folder may be considered as empty if all children are only directories.
|
||||||
if metadata.is_dir() {
|
if metadata.is_dir() {
|
||||||
next_folder = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap() + "/";
|
next_folder = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
+ "/";
|
||||||
folders_to_check.push(next_folder.clone());
|
folders_to_check.push(next_folder.clone());
|
||||||
|
|
||||||
folders_checked.insert(
|
folders_checked.insert(
|
||||||
|
|
|
@ -166,7 +166,13 @@ impl Temporary {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut is_excluded_dir = false;
|
let mut is_excluded_dir = false;
|
||||||
next_folder = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap() + "/";
|
next_folder = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
+ "/";
|
||||||
|
|
||||||
for ed in &self.directories.excluded_directories {
|
for ed in &self.directories.excluded_directories {
|
||||||
if next_folder == *ed {
|
if next_folder == *ed {
|
||||||
|
@ -188,7 +194,11 @@ impl Temporary {
|
||||||
folders_to_check.push(next_folder);
|
folders_to_check.push(next_folder);
|
||||||
}
|
}
|
||||||
} else if metadata.is_file() {
|
} else if metadata.is_file() {
|
||||||
let file_name_lowercase: String = entry_data.file_name().into_string().unwrap().to_lowercase();
|
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
}
|
||||||
|
.to_lowercase();
|
||||||
let mut is_temporary_file: bool = false;
|
let mut is_temporary_file: bool = false;
|
||||||
|
|
||||||
// Temporary files which needs to have dot in name(not sure if exists without dot)
|
// Temporary files which needs to have dot in name(not sure if exists without dot)
|
||||||
|
@ -204,7 +214,12 @@ impl Temporary {
|
||||||
|
|
||||||
// Checking files
|
// Checking files
|
||||||
if is_temporary_file {
|
if is_temporary_file {
|
||||||
let current_file_name = "".to_owned() + ¤t_folder + &entry_data.file_name().into_string().unwrap();
|
let current_file_name = "".to_owned()
|
||||||
|
+ ¤t_folder
|
||||||
|
+ match &entry_data.file_name().into_string() {
|
||||||
|
Ok(t) => t,
|
||||||
|
Err(_) => continue,
|
||||||
|
};
|
||||||
|
|
||||||
// Checking expressions
|
// Checking expressions
|
||||||
let mut found_expression: bool = false;
|
let mut found_expression: bool = false;
|
||||||
|
|
Loading…
Reference in a new issue