Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#2

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)

  Alt 29. Apr 2022, 11:51
Zuerst nur mal die Dateigröße vergleichen.

(Nur hingedaddelt)
Delphi-Quellcode:
function CompareFileSize(FileA, FileB : wideString) : Boolean;
var
  sr : TSearchRec;
  SizeA : Int64;
  SizeB : Int64;
begin
  if FindFirst(FileA, faAnyFile, sr ) = 0 then
    SizeA := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
  else
    SizeA := -1;
  FindClose(sr);
  if FindFirst(FileB, faAnyFile, sr ) = 0 then
    SizeB := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
  else
    SizeB := -2;
  FindClose(sr);
  Result := SizeA = SizeB;
end;
Nur wenn dabei gleich rauskommt, könnten die Dateien auch inhaltlich gleich sein. Erst dann kann mit der MD5-Checksumme (oder eine andere Checksumme) festgestellt werden, ob die Dateien nun wirklich gleich sind oder nicht.

Die halbe Stunde Aufwand für die MD5-Checksumme ist also nur erforderlich, wenn Dateien gleicher Größe vorliegen.

Alternative: Mit 'ner ZIP-Komponente die Dateilisten der ZIP-Dateien auslesen und deren Inhalt vergleichen. Auch das wäre nur erforderlich, wenn die Dateien über die gleiche Dateigröße verfügen.
  Mit Zitat antworten Zitat