Again
This commit is contained in:
parent
91bd2e6933
commit
8a3010cd8f
|
@ -7,7 +7,7 @@ use std::sync::atomic::{AtomicBool, AtomicU64};
|
|||
use std::sync::Arc;
|
||||
use std::thread::{sleep, JoinHandle};
|
||||
use std::time::Duration;
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
use std::time::SystemTime;
|
||||
use std::{fs, thread};
|
||||
|
||||
use crossbeam_channel::Receiver;
|
||||
|
@ -17,14 +17,12 @@ use rayon::prelude::*;
|
|||
|
||||
use crate::common::{check_folder_children, split_path};
|
||||
use crate::common::{Common, LOOP_DURATION};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
use crate::common_items::ExcludedItems;
|
||||
use crate::common_messages::Messages;
|
||||
use crate::common_traits::{DebugPrint, PrintResults, SaveResults};
|
||||
use crate::flc;
|
||||
use crate::localizer_core::generate_translation_hashmap;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ProgressData {
|
||||
|
@ -270,17 +268,9 @@ impl BigFile {
|
|||
return;
|
||||
}
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
return;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, warnings) else {
|
||||
return;
|
||||
};
|
||||
|
||||
if !self.allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
return;
|
||||
|
@ -294,25 +284,7 @@ impl BigFile {
|
|||
let fe: FileEntry = FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
size: metadata.len(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(metadata, warnings, ¤t_file_name, false),
|
||||
};
|
||||
|
||||
fe_result.push((fe.size, fe));
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::path::{Path, PathBuf};
|
|||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||
use std::sync::Arc;
|
||||
use std::thread::{sleep, JoinHandle};
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use std::time::{Duration, SystemTime};
|
||||
use std::{fs, mem, panic, thread};
|
||||
|
||||
use crossbeam_channel::Receiver;
|
||||
|
@ -19,14 +19,12 @@ use serde::{Deserialize, Serialize};
|
|||
|
||||
use crate::common::{check_folder_children, create_crash_message, open_cache_folder, Common, LOOP_DURATION, PDF_FILES_EXTENSIONS};
|
||||
use crate::common::{AUDIO_FILES_EXTENSIONS, IMAGE_RS_BROKEN_FILES_EXTENSIONS, ZIP_FILES_EXTENSIONS};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
use crate::common_items::ExcludedItems;
|
||||
use crate::common_messages::Messages;
|
||||
use crate::common_traits::*;
|
||||
use crate::flc;
|
||||
use crate::localizer_core::generate_translation_hashmap;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ProgressData {
|
||||
|
@ -285,17 +283,9 @@ impl BrokenFiles {
|
|||
} else if metadata.is_file() {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
continue 'dir;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, &mut warnings) else {
|
||||
continue 'dir;
|
||||
};
|
||||
|
||||
if !self.allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
continue 'dir;
|
||||
|
@ -317,25 +307,7 @@ impl BrokenFiles {
|
|||
|
||||
let fe: FileEntry = FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, ¤t_file_name, false),
|
||||
size: metadata.len(),
|
||||
type_of_file,
|
||||
error_string: String::new(),
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
use std::collections::BTreeMap;
|
||||
use std::fs;
|
||||
use std::fs::{DirEntry, Metadata, ReadDir};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||
use std::sync::Arc;
|
||||
|
||||
use std::fs;
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
use crossbeam_channel::Receiver;
|
||||
|
@ -433,42 +432,16 @@ where
|
|||
FolderEntry {
|
||||
parent_path: Some(current_folder.clone()),
|
||||
is_empty: FolderEmptiness::Maybe,
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_folder_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_folder.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_folder_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_folder.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, current_folder, true),
|
||||
},
|
||||
));
|
||||
}
|
||||
(EntryType::File, Collect::Files) => {
|
||||
atomic_entry_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
continue 'dir;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, &mut warnings) else {
|
||||
continue 'dir;
|
||||
};
|
||||
|
||||
if !allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
continue 'dir;
|
||||
|
@ -493,25 +466,7 @@ where
|
|||
let fe: FileEntry = FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
size: metadata.len(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, ¤t_file_name, false),
|
||||
hash: String::new(),
|
||||
symlink_info: None,
|
||||
};
|
||||
|
@ -537,17 +492,9 @@ where
|
|||
(EntryType::Symlink, Collect::InvalidSymlinks) => {
|
||||
atomic_entry_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
continue 'dir;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, &mut warnings) else {
|
||||
continue 'dir;
|
||||
};
|
||||
|
||||
if !allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
continue 'dir;
|
||||
|
@ -605,25 +552,7 @@ where
|
|||
// Creating new file entry
|
||||
let fe: FileEntry = FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, ¤t_file_name, false),
|
||||
size: 0,
|
||||
hash: String::new(),
|
||||
symlink_info: Some(SymlinkInfo { destination_path, type_of_error }),
|
||||
|
@ -715,6 +644,46 @@ pub fn common_get_entry_data_metadata<'a>(entry: &'a Result<DirEntry, std::io::E
|
|||
};
|
||||
Some((entry_data, metadata))
|
||||
}
|
||||
pub fn get_modified_time(metadata: &Metadata, warnings: &mut Vec<String>, current_file_name: &Path, is_folder: bool) -> u64 {
|
||||
match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
let translation_hashmap = generate_translation_hashmap(vec![("name", current_file_name.display().to_string())]);
|
||||
if is_folder {
|
||||
warnings.push(flc!("core_folder_modified_before_epoch", translation_hashmap));
|
||||
} else {
|
||||
warnings.push(flc!("core_file_modified_before_epoch", translation_hashmap));
|
||||
}
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
let translation_hashmap = generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())]);
|
||||
if is_folder {
|
||||
warnings.push(flc!("core_folder_no_modification_date", translation_hashmap));
|
||||
} else {
|
||||
warnings.push(flc!("core_file_no_modification_date", translation_hashmap));
|
||||
}
|
||||
0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_lowercase_name(entry_data: &DirEntry, warnings: &mut Vec<String>) -> Option<String> {
|
||||
let name = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
return None;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
Some(name)
|
||||
}
|
||||
|
||||
fn set_as_not_empty_folder(folder_entries: &mut BTreeMap<PathBuf, FolderEntry>, current_folder: &Path) {
|
||||
// Not folder so it may be a file or symbolic link so it isn't empty
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::path::{Path, PathBuf};
|
|||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||
use std::sync::Arc;
|
||||
use std::thread::{sleep, JoinHandle};
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use std::time::{Duration, SystemTime};
|
||||
use std::{mem, thread};
|
||||
|
||||
use bk_tree::BKTree;
|
||||
|
@ -25,14 +25,13 @@ use crate::common::{
|
|||
check_folder_children, create_crash_message, get_dynamic_image_from_raw_image, get_number_of_threads, open_cache_folder, Common, HEIC_EXTENSIONS,
|
||||
IMAGE_RS_SIMILAR_IMAGES_EXTENSIONS, LOOP_DURATION, RAW_IMAGE_EXTENSIONS,
|
||||
};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
use crate::common_items::ExcludedItems;
|
||||
use crate::common_messages::Messages;
|
||||
use crate::common_traits::{DebugPrint, PrintResults, SaveResults};
|
||||
use crate::flc;
|
||||
use crate::localizer_core::generate_translation_hashmap;
|
||||
|
||||
pub const SIMILAR_VALUES: [[u32; 6]; 4] = [
|
||||
[1, 2, 5, 7, 14, 20], // 8
|
||||
|
@ -376,17 +375,9 @@ impl SimilarImages {
|
|||
} else if metadata.is_file() {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
continue 'dir;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, &mut warnings) else {
|
||||
continue 'dir;
|
||||
};
|
||||
|
||||
if !self.allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
continue 'dir;
|
||||
|
@ -403,26 +394,7 @@ impl SimilarImages {
|
|||
path: current_file_name.clone(),
|
||||
size: metadata.len(),
|
||||
dimensions: String::new(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, ¤t_file_name, false),
|
||||
hash: Vec::new(),
|
||||
similarity: 0,
|
||||
};
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::path::{Path, PathBuf};
|
|||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||
use std::sync::Arc;
|
||||
use std::thread::{sleep, JoinHandle};
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use std::time::{Duration, SystemTime};
|
||||
use std::{mem, thread};
|
||||
|
||||
use crossbeam_channel::Receiver;
|
||||
|
@ -20,7 +20,7 @@ use vid_dup_finder_lib::{NormalizedTolerance, VideoHash};
|
|||
|
||||
use crate::common::{check_folder_children, VIDEO_FILES_EXTENSIONS};
|
||||
use crate::common::{open_cache_folder, Common, LOOP_DURATION};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
use crate::common_items::ExcludedItems;
|
||||
|
@ -341,17 +341,9 @@ impl SimilarVideos {
|
|||
} else if metadata.is_file() {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
continue 'dir;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, &mut warnings) else {
|
||||
continue 'dir;
|
||||
};
|
||||
|
||||
if !self.allowed_extensions.matches_filename(&file_name_lowercase) {
|
||||
continue 'dir;
|
||||
|
@ -368,25 +360,7 @@ impl SimilarVideos {
|
|||
let fe: FileEntry = FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
size: metadata.len(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name_str.clone())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name_str.clone()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
modified_date: get_modified_time(&metadata, &mut warnings, ¤t_file_name, false),
|
||||
vhash: Default::default(),
|
||||
error: String::new(),
|
||||
};
|
||||
|
|
|
@ -5,20 +5,34 @@ use std::path::{Path, PathBuf};
|
|||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||
use std::sync::Arc;
|
||||
use std::thread::{sleep, JoinHandle};
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use std::time::{Duration, SystemTime};
|
||||
use std::{fs, thread};
|
||||
|
||||
use crossbeam_channel::Receiver;
|
||||
use rayon::prelude::*;
|
||||
|
||||
use crate::common::{check_folder_children, Common, LOOP_DURATION};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_items::ExcludedItems;
|
||||
use crate::common_messages::Messages;
|
||||
use crate::common_traits::*;
|
||||
use crate::flc;
|
||||
use crate::localizer_core::generate_translation_hashmap;
|
||||
|
||||
const TEMP_EXTENSIONS: &[&str] = &[
|
||||
"#",
|
||||
"thumbs.db",
|
||||
".bak",
|
||||
"~",
|
||||
".tmp",
|
||||
".temp",
|
||||
".ds_store",
|
||||
".crdownload",
|
||||
".part",
|
||||
".cache",
|
||||
".dmp",
|
||||
".download",
|
||||
".partial",
|
||||
];
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ProgressData {
|
||||
|
@ -252,36 +266,11 @@ impl Temporary {
|
|||
) -> Option<FileEntry> {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
|
||||
let file_name_lowercase: String = match entry_data.file_name().into_string() {
|
||||
Ok(t) => t,
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_not_utf8_name",
|
||||
generate_translation_hashmap(vec![("name", entry_data.path().display().to_string())])
|
||||
));
|
||||
return None;
|
||||
}
|
||||
}
|
||||
.to_lowercase();
|
||||
let Some(file_name_lowercase) = get_lowercase_name(entry_data, warnings) else {
|
||||
return None;
|
||||
};
|
||||
|
||||
if ![
|
||||
"#",
|
||||
"thumbs.db",
|
||||
".bak",
|
||||
"~",
|
||||
".tmp",
|
||||
".temp",
|
||||
".ds_store",
|
||||
".crdownload",
|
||||
".part",
|
||||
".cache",
|
||||
".dmp",
|
||||
".download",
|
||||
".partial",
|
||||
]
|
||||
.iter()
|
||||
.any(|f| file_name_lowercase.ends_with(f))
|
||||
{
|
||||
if !TEMP_EXTENSIONS.iter().any(|f| file_name_lowercase.ends_with(f)) {
|
||||
return None;
|
||||
}
|
||||
let current_file_name = current_folder.join(entry_data.file_name());
|
||||
|
@ -292,25 +281,7 @@ impl Temporary {
|
|||
// Creating new file entry
|
||||
Some(FileEntry {
|
||||
path: current_file_name.clone(),
|
||||
modified_date: match metadata.modified() {
|
||||
Ok(t) => match t.duration_since(UNIX_EPOCH) {
|
||||
Ok(d) => d.as_secs(),
|
||||
Err(_inspected) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_modified_before_epoch",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string())])
|
||||
));
|
||||
0
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
warnings.push(flc!(
|
||||
"core_file_no_modification_date",
|
||||
generate_translation_hashmap(vec![("name", current_file_name.display().to_string()), ("reason", e.to_string())])
|
||||
));
|
||||
0
|
||||
} // Permissions Denied
|
||||
},
|
||||
modified_date: get_modified_time(metadata, warnings, ¤t_file_name, false),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue