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)
|
shutil.move(source_quarantine, dest_name)
|
||||||
|
|
||||||
# Delete source folder if empty
|
# Delete source folder if empty
|
||||||
try:
|
delete_empty_folders(source_path)
|
||||||
os.rmdir(source_path)
|
|
||||||
except OSError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Main folder
|
# Main folder
|
||||||
if os.path.exists(source_path):
|
if os.path.exists(source_path):
|
||||||
|
|
@ -139,11 +136,7 @@ def cleanup_d7ii():
|
||||||
shutil.move(entry.path, dest_path)
|
shutil.move(entry.path, dest_path)
|
||||||
|
|
||||||
# Remove folder
|
# Remove folder
|
||||||
try:
|
delete_empty_folders(entry.path)
|
||||||
os.rmdir(entry.path)
|
|
||||||
except OSError:
|
|
||||||
# Folder should be empty but whatever
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Registry Items
|
# Registry Items
|
||||||
for key, settings in D7_HKCR_CLEANUP.items():
|
for key, settings in D7_HKCR_CLEANUP.items():
|
||||||
|
|
@ -176,10 +169,7 @@ def cleanup_desktop():
|
||||||
shutil.move(entry.path, dest_name)
|
shutil.move(entry.path, dest_name)
|
||||||
|
|
||||||
# Remove dir if empty
|
# Remove dir if empty
|
||||||
try:
|
delete_empty_folders(dest_folder)
|
||||||
os.rmdir(dest_folder)
|
|
||||||
except OSError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def cleanup_emsisoft():
|
def cleanup_emsisoft():
|
||||||
"""Remove EmsisoftCmd files from drive root."""
|
"""Remove EmsisoftCmd files from drive root."""
|
||||||
|
|
@ -218,9 +208,23 @@ def cleanup_regbackups():
|
||||||
shutil.move(entry.path, dest_path)
|
shutil.move(entry.path, dest_path)
|
||||||
|
|
||||||
# Delete source folders if empty
|
# 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:
|
try:
|
||||||
os.rmdir(source_path)
|
os.rmdir(folder_path)
|
||||||
os.rmdir(r'{}\Support'.format(global_vars['Env']['SYSTEMDRIVE']))
|
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue