1
0
Fork 0
mirror of synced 2024-04-26 16:52:19 +12:00

Don't crash when found file name which is not valid Unicode

This commit is contained in:
Rafał Mikrut 2020-10-06 17:10:34 +02:00
parent 78aa7d531a
commit 3b63798751
5 changed files with 79 additions and 13 deletions

View file

@ -148,7 +148,13 @@ impl BigFile {
}
let mut is_excluded_dir = false;
next_folder = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap() + "/";
next_folder = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
}
+ "/";
for ed in &self.directories.excluded_directories {
if next_folder == *ed {
@ -171,7 +177,11 @@ impl BigFile {
}
} else if metadata.is_file() {
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
if !self.allowed_extensions.file_extensions.is_empty() {
@ -188,7 +198,12 @@ impl BigFile {
// Checking files
if have_valid_extension {
let current_file_name = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap();
let current_file_name = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
};
// Checking expressions
let mut found_expression: bool = false;

View file

@ -230,7 +230,13 @@ impl DuplicateFinder {
}
let mut is_excluded_dir = false;
next_folder = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap() + "/";
next_folder = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
}
+ "/";
for ed in &self.directories.excluded_directories {
if next_folder == *ed {
@ -253,7 +259,11 @@ impl DuplicateFinder {
}
} else if metadata.is_file() {
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
if !self.allowed_extensions.file_extensions.is_empty() {
@ -270,7 +280,12 @@ impl DuplicateFinder {
// Checking files
if metadata.len() >= self.minimal_file_size && have_valid_extension {
let current_file_name = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap();
let current_file_name = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
};
// Checking expressions
let mut found_expression: bool = false;

View file

@ -174,7 +174,13 @@ impl EmptyFiles {
}
let mut is_excluded_dir = false;
next_folder = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap() + "/";
next_folder = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
}
+ "/";
for ed in &self.directories.excluded_directories {
if next_folder == *ed {
@ -197,7 +203,11 @@ impl EmptyFiles {
}
} else if metadata.is_file() {
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
if !self.allowed_extensions.file_extensions.is_empty() {
@ -214,7 +224,12 @@ impl EmptyFiles {
// Checking files
if metadata.len() == 0 && have_valid_extension {
let current_file_name = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap();
let current_file_name = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
};
// Checking expressions
let mut found_expression: bool = false;

View file

@ -173,7 +173,13 @@ impl EmptyFolder {
};
// If child is dir, still folder may be considered as empty if all children are only directories.
if metadata.is_dir() {
next_folder = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap() + "/";
next_folder = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
}
+ "/";
folders_to_check.push(next_folder.clone());
folders_checked.insert(

View file

@ -166,7 +166,13 @@ impl Temporary {
}
let mut is_excluded_dir = false;
next_folder = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap() + "/";
next_folder = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
}
+ "/";
for ed in &self.directories.excluded_directories {
if next_folder == *ed {
@ -188,7 +194,11 @@ impl Temporary {
folders_to_check.push(next_folder);
}
} 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;
// Temporary files which needs to have dot in name(not sure if exists without dot)
@ -204,7 +214,12 @@ impl Temporary {
// Checking files
if is_temporary_file {
let current_file_name = "".to_owned() + &current_folder + &entry_data.file_name().into_string().unwrap();
let current_file_name = "".to_owned()
+ &current_folder
+ match &entry_data.file_name().into_string() {
Ok(t) => t,
Err(_) => continue,
};
// Checking expressions
let mut found_expression: bool = false;