diff --git a/cura/Backups/Backup.py b/cura/Backups/Backup.py index 90a354c0a3..a5fc3044ce 100644 --- a/cura/Backups/Backup.py +++ b/cura/Backups/Backup.py @@ -181,8 +181,7 @@ class Backup: return extracted - @staticmethod - def _extractArchive(archive: "ZipFile", target_path: str) -> bool: + def _extractArchive(self, archive: "ZipFile", target_path: str) -> bool: """Extract the whole archive to the given target path. :param archive: The archive as ZipFile. @@ -201,7 +200,11 @@ class Backup: Resources.factoryReset() Logger.log("d", "Extracting backup to location: %s", target_path) name_list = archive.namelist() + ignore_string = re.compile("|".join(self.IGNORED_FILES + self.IGNORED_FOLDERS)) for archive_filename in name_list: + if ignore_string.search(archive_filename): + Logger.warning(f"File ({archive_filename}) in archive that doesn't fit current backup policy; ignored.") + continue try: archive.extract(archive_filename, target_path) except (PermissionError, EnvironmentError):