Um zu überprüfen ob zwei Dateien identisch sind kann die folgenden Funktion benutzt werden (Autor:
toms). Die Funktion benutzt das
TFileStream Objekt um die Dateien zu lesen. Mit Hilfe der Funktion
CompareMem wird der Inhalt verglichen. Die Funktion gibt
True zurück wenn der Inhalt der beiden Dateien gleich ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| function FilesAreEqual(const File1, File2: TFileName): Boolean; const BlockSize = 65536; var fs1, fs2: TFileStream; L1, L2: Integer; B1, B2: array[1..BlockSize] of Byte; begin Result := False; fs1 := TFileStream.Create(File1, fmOpenRead or fmShareDenyWrite); try fs2 := TFileStream.Create(File2, fmOpenRead or fmShareDenyWrite); try Result := fs1.Size = fs2.Size; while Result and (fs1.Position < fs1.Size) do begin L1 := fs1.Read(B1[1], BlockSize); L2 := fs2.Read(B2[1], BlockSize);
Result := L1 = L2; if Result then Result := CompareMem(@B1[1], @B2[1], L1); end; finally fs2.Free; end; finally fs1.Free; end; end; |