Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Zwei Verzeichnisse vergleichen und Vorschau anzeigen

  Alt 25. Apr 2021, 13:35
Hier das besagte Thema, welches ich aufmachen wollte.
Ich habe uralten Code rumfliegen, der alle Dateien in zwei Verzeichnissen vergleicht. Das ist aber mehr als unperformant und sinnlos obendrein.
Davon kann ich keine Demo machen, weil es einfach zuviel ist und überall im Projekt mit eingeklinkt ist.

Es existieren zwei TStringListen. Der String ist der komplette Pfad zu einer Datei. Drangepapt ist ein Object (Record-Typ), welcher sämtliche zu einer Datei gefundenen Informationen enthält, Attribute, Dateigrößte und sowas. Es geht hier nicht drum, wie ich die StringListen fülle. Die sind existent und das Befüllen ist schnell genug.

Verzeichnis A enthält die Dateien 1, 2 und 4.
Verzeichnis B enthält die Dateien 1, 2 und 3.
Datei 4 soll später von A nach B kopiert werden.
Datei 3 aus B wird gelölscht, da sie nicht in A existiert.
Wenn Datei 2 aus A nicht identisch zu Datei 2 aus B ist, soll auch die kopiert werden.
Diese Logik bekomme ich auch noch hin (u.a. mit einer dritten, temporären Liste, die nur die Unterschiede zwischen A und B enthält).
Für die Dateien zu vergleichen und Unterschiede (Ja/Nein) festzustellen, habe ich bereits eine gute Lösung, welche nur 1 Zeile Code pro Aufruf braucht.

Aber jetzt kommt das Problem. Ich möchte eine Vorschau anzeigen die auflistet, was passieren wird.
Die Vorschau sollte hier also alle Dateien von A und B auflisten und verdeutlichen, dass Datei 4 von A nach B kopiert wird und Datei 3 aus B gelöscht wird.

Die Frage ist jetzt, wie zeigt man so eine Vorschau vernünftig an, ohne dass man die beiden Listen x-fach durchgehen muss um alle Informationen wie Datum und sowas jeder Datei von A und B anzuzeigen? Die Vorschau zeigt den Dateinamen, -größe und -datum.

Wenn in dieser Vorschau beispielsweise Datei 2 anzeigen möchte, werden für diese Datei 2 sämtliche Informationen (Dateidatum usw.) von Datei 2 aus A und Datei 2 aus B angezeigt.
Damit das möglich ist, gehe ich die Listen aber schrecklich oft durch, richtig ekelhafter Code. Das ist wie gesagt leider soviel, dass ich es hier nicht posten kann.
Wenn ich eine Datei X aus A in der Vorschau anzeige, brauche ich auch alle Infos von Datei X aus B und da sehe ich ein Problem, wenn ich die Listen nicht 100x durchgehen möchte.
Ich könnte auch einfach nur Datei 2 aus A mit Dateinamen, -größe und -datum anzeigen. Dann hätte man aber keinerlei Infos zur selben Datei aus B, die ja überschrieben wird.

Gibt es andere, bessere Vorschaumöglichkeiten um zu zeigen, was im Anschluss passiert, welche Dateien verarbeitet werden?

Falls meine EErklärung unverständlich ist, sagts einfach ich versuche dann besser oder anders zu erklären was ich suche. Das klingt aber bestimmt eh alles so kompliziert und unverständlich, dass dafür keiner eine Lösung hat.

Geändert von DieDolly (25. Apr 2021 um 13:57 Uhr)
  Mit Zitat antworten Zitat