From 3acf30a46e3dc3457c13436bc78cb3369702d0b5 Mon Sep 17 00:00:00 2001 From: allexendar Date: Fri, 26 Sep 2025 18:28:16 +0000 Subject: [PATCH] Fix deletition of symlink targets on Windows --- src/calibre/utils/copy_files.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/calibre/utils/copy_files.py b/src/calibre/utils/copy_files.py index f49a11e94a..9c06b54058 100644 --- a/src/calibre/utils/copy_files.py +++ b/src/calibre/utils/copy_files.py @@ -104,6 +104,9 @@ class WindowsFileCopier: def _open_file(self, path: str, retry_on_sharing_violation: bool = True, is_folder: bool = False) -> 'winutil.Handle': flags = winutil.FILE_FLAG_BACKUP_SEMANTICS if is_folder else winutil.FILE_FLAG_SEQUENTIAL_SCAN + if os.path.islink(path): + # Do not open symbolic link target to prevent unwanted delete_on_close + flags |= 0x00200000 # winutil.FILE_FLAG_OPEN_REPARSE_POINT access_flags = winutil.GENERIC_READ if self.delete_all: access_flags |= winutil.DELETE