1
0
Fork 0
mirror of synced 2024-06-01 18:19:46 +12:00
This commit is contained in:
Rafał Mikrut 2024-01-22 15:02:28 +01:00
parent 4a19e8b3c9
commit bb3ffa4cc6

View file

@ -104,19 +104,17 @@ impl EmptyFolder {
let excluded_items = self.common_data.excluded_items.clone(); let excluded_items = self.common_data.excluded_items.clone();
let directories = self.common_data.directories.clone(); let directories = self.common_data.directories.clone();
let mut folder_entries: HashMap<String, FolderEntry> = HashMap::new();
let mut non_empty_folders: Vec<String> = vec![]; let mut non_empty_folders: Vec<String> = vec![];
let mut start_folder_entries = Vec::with_capacity(folders_to_check.len());
let mut new_folder_entries_list = Vec::new();
for dir in &folders_to_check { for dir in &folders_to_check {
folder_entries.insert( start_folder_entries.push(FolderEntry {
dir.to_string_lossy().to_string(),
FolderEntry {
path: dir.clone(), path: dir.clone(),
parent_path: None, parent_path: None,
is_empty: FolderEmptiness::Maybe, is_empty: FolderEmptiness::Maybe,
modified_date: 0, modified_date: 0,
}, });
);
} }
while !folders_to_check.is_empty() { while !folders_to_check.is_empty() {
@ -187,10 +185,18 @@ impl EmptyFolder {
if let Some(non_empty_folder) = non_empty_folder { if let Some(non_empty_folder) = non_empty_folder {
non_empty_folders.push(non_empty_folder); non_empty_folders.push(non_empty_folder);
} }
for (path, entry) in fe_list { new_folder_entries_list.push(fe_list);
folder_entries.insert(path, entry);
} }
} }
let mut folder_entries: HashMap<String, FolderEntry> = HashMap::with_capacity(start_folder_entries.len() + new_folder_entries_list.iter().map(|e| e.len()).sum::<usize>());
for fe in start_folder_entries {
folder_entries.insert(fe.path.to_string_lossy().to_string(), fe);
}
for fe_list in new_folder_entries_list {
for fe in fe_list {
folder_entries.insert(fe.path.to_string_lossy().to_string(), fe);
}
} }
// Start to // Start to
@ -239,7 +245,7 @@ impl EmptyFolder {
warnings: &mut Vec<String>, warnings: &mut Vec<String>,
excluded_items: &ExcludedItems, excluded_items: &ExcludedItems,
non_empty_folder: &mut Option<String>, non_empty_folder: &mut Option<String>,
folder_entries_list: &mut Vec<(String, FolderEntry)>, folder_entries_list: &mut Vec<FolderEntry>,
) { ) {
let next_folder = entry_data.path(); let next_folder = entry_data.path();
if excluded_items.is_excluded(&next_folder) || directories.is_excluded(&next_folder) { if excluded_items.is_excluded(&next_folder) || directories.is_excluded(&next_folder) {
@ -266,15 +272,12 @@ impl EmptyFolder {
}; };
dir_result.push(next_folder.clone()); dir_result.push(next_folder.clone());
folder_entries_list.push(( folder_entries_list.push(FolderEntry {
next_folder.to_string_lossy().to_string(),
FolderEntry {
path: next_folder, path: next_folder,
parent_path: Some(current_folder_as_str.to_string()), parent_path: Some(current_folder_as_str.to_string()),
is_empty: FolderEmptiness::Maybe, is_empty: FolderEmptiness::Maybe,
modified_date: get_modified_time(&metadata, warnings, current_folder, true), modified_date: get_modified_time(&metadata, warnings, current_folder, true),
}, });
));
} }
#[fun_time(message = "delete_files", level = "debug")] #[fun_time(message = "delete_files", level = "debug")]