Added delete_empty_folders()
* Deletes folders only if they're empty and does so from the bottom up * (i.e. "Some\Path" will be removed before "Some")
This commit is contained in:
parent
ceae05817d
commit
a8a2fce662
1 changed files with 19 additions and 15 deletions
|
|
@ -38,10 +38,7 @@ def cleanup_adwcleaner():
|
|||
shutil.move(source_quarantine, dest_name)
|
||||
|
||||
# Delete source folder if empty
|
||||
try:
|
||||
os.rmdir(source_path)
|
||||
except OSError:
|
||||
pass
|
||||
delete_empty_folders(source_path)
|
||||
|
||||
# Main folder
|
||||
if os.path.exists(source_path):
|
||||
|
|
@ -139,11 +136,7 @@ def cleanup_d7ii():
|
|||
shutil.move(entry.path, dest_path)
|
||||
|
||||
# Remove folder
|
||||
try:
|
||||
os.rmdir(entry.path)
|
||||
except OSError:
|
||||
# Folder should be empty but whatever
|
||||
pass
|
||||
delete_empty_folders(entry.path)
|
||||
|
||||
# Registry Items
|
||||
for key, settings in D7_HKCR_CLEANUP.items():
|
||||
|
|
@ -176,10 +169,7 @@ def cleanup_desktop():
|
|||
shutil.move(entry.path, dest_name)
|
||||
|
||||
# Remove dir if empty
|
||||
try:
|
||||
os.rmdir(dest_folder)
|
||||
except OSError:
|
||||
pass
|
||||
delete_empty_folders(dest_folder)
|
||||
|
||||
def cleanup_emsisoft():
|
||||
"""Remove EmsisoftCmd files from drive root."""
|
||||
|
|
@ -218,9 +208,23 @@ def cleanup_regbackups():
|
|||
shutil.move(entry.path, dest_path)
|
||||
|
||||
# Delete source folders if empty
|
||||
delete_empty_folders(r'{}\Support'.format(
|
||||
global_vars['Env']['SYSTEMDRIVE']))
|
||||
|
||||
def delete_empty_folders(folder_path):
|
||||
"""Delete all empty folders in path (depth first)."""
|
||||
if not os.path.exists(folder_path) or not os.path.isdir(folder_path):
|
||||
# Bail early (silently)
|
||||
return
|
||||
|
||||
# Delete empty subfolders first
|
||||
for item in os.scandir(folder_path):
|
||||
if item.is_dir():
|
||||
delete_empty_folders(item.path)
|
||||
|
||||
# Remove top folder
|
||||
try:
|
||||
os.rmdir(source_path)
|
||||
os.rmdir(r'{}\Support'.format(global_vars['Env']['SYSTEMDRIVE']))
|
||||
os.rmdir(folder_path)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue