From a46f8bd2440519debdf66b57c5a2ca083a0d7f01 Mon Sep 17 00:00:00 2001 From: Rhet Turnbull Date: Sun, 19 Feb 2023 22:51:52 -0800 Subject: [PATCH] Fix error during cleanup, #987 (#993) --- osxphotos/cli/export.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/osxphotos/cli/export.py b/osxphotos/cli/export.py index cc6f3ba6..25acb930 100644 --- a/osxphotos/cli/export.py +++ b/osxphotos/cli/export.py @@ -2489,8 +2489,12 @@ def cleanup_files(dest_path, files_to_keep, dirs_to_keep, fileutil, verbose): for p in pathlib.Path(dest_path).rglob("*"): if p.is_file() and normalize_fs_path(str(p).lower()) not in keepers: verbose(f"Deleting [filepath]{p}") - fileutil.unlink(p) - deleted_files.append(str(p)) + try: + fileutil.unlink(p) + deleted_files.append(str(p)) + except OSError as e: + # ignore errors deleting files, #987 + verbose(f"Error deleting file {p}: {e}") # delete empty directories deleted_dirs = [] @@ -2501,8 +2505,12 @@ def cleanup_files(dest_path, files_to_keep, dirs_to_keep, fileutil, verbose): if not list(pathlib.Path(dirpath).glob("*")): # directory and directory is empty verbose(f"Deleting empty directory {dirpath}") - fileutil.rmdir(dirpath) - deleted_dirs.append(str(dirpath)) + try: + fileutil.rmdir(dirpath) + deleted_dirs.append(str(dirpath)) + except OSError as e: + # ignore errors deleting directories, #987 + verbose(f"Error deleting directory {dirpath}: {e}") return (deleted_files, deleted_dirs)