Performance-Optimierung bei Duplikat-Dateinamengenerierung
Sammelt alle verwendeten XML-Dateinamen einmalig in ein Set für schnelleren Lookup beim Generieren alternativer Dateinamen. Ersetzt wiederholte Funktionsaufrufe durch effizienten Set-Lookup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2294,13 +2294,17 @@ class MainWindow(QMainWindow):
|
||||
base_name = original_path.stem # "datei"
|
||||
extension = original_path.suffix # ".xml"
|
||||
|
||||
# Sammle einmalig alle verwendeten Dateinamen (Performance-Optimierung)
|
||||
all_xml_files = self._get_all_project_xml_files()
|
||||
used_names = {xml_file.xml.name for xml_file in all_xml_files}
|
||||
|
||||
counter = 1
|
||||
while True:
|
||||
new_name = f"{base_name}_{counter}{extension}"
|
||||
new_path = xml_dir / new_name
|
||||
|
||||
# Prüfe sowohl physische Existenz als auch Verwendung im Projekt
|
||||
if not new_path.exists() and not self._is_filename_used_in_project(Path("xml") / new_name):
|
||||
# Prüfe sowohl physische Existenz als auch Verwendung im Projekt (optimierter Set-Lookup)
|
||||
if not new_path.exists() and new_name not in used_names:
|
||||
logger.debug(f"Alternativer Dateiname generiert: {new_name}")
|
||||
return new_path
|
||||
|
||||
@@ -2313,7 +2317,6 @@ class MainWindow(QMainWindow):
|
||||
except Exception as e:
|
||||
logger.error(f"Fehler beim Generieren alternativer Dateinamen für {original_path}: {e}")
|
||||
# Fallback: Zeitstempel verwenden
|
||||
import time
|
||||
timestamp = int(time.time())
|
||||
fallback_name = f"{original_path.stem}_{timestamp}{original_path.suffix}"
|
||||
return xml_dir / fallback_name
|
||||
|
||||
Reference in New Issue
Block a user