[FIXED] Wie vergleiche ich 2 Dateien schnell mit .NET?

Ausgabe

Typische Ansätze empfehlen, die Binärdatei über FileStream auszulesen und byteweise zu vergleichen.

  • Wäre ein Prüfsummenvergleich wie CRC schneller?
  • Gibt es .NET-Bibliotheken, die eine Prüfsumme für eine Datei generieren können?

Lösung

Ein Prüfsummenvergleich ist höchstwahrscheinlich langsamer als ein Byte-für-Byte-Vergleich.

Um eine Prüfsumme zu generieren, müssen Sie jedes Byte der Datei laden und es verarbeiten. Sie müssen dies dann für die zweite Datei tun. Die Verarbeitung wird mit ziemlicher Sicherheit langsamer sein als die Vergleichsprüfung.

Was das Generieren einer Prüfsumme angeht: Das geht ganz einfach mit den Kryptografieklassen. Hier ist ein kurzes Beispiel für das Generieren einer MD5-Prüfsumme mit C#.

Eine Prüfsumme kann jedoch schneller und sinnvoller sein, wenn Sie die Prüfsumme des „Test“- oder „Basis“-Falls vorberechnen können. Wenn Sie eine vorhandene Datei haben und prüfen, ob eine neue Datei mit der vorhandenen identisch ist, würde das Vorberechnen der Prüfsumme für Ihre “vorhandene” Datei bedeuten, dass Sie die DiskIO nur einmal auf der ausführen müssen neue Datei. Dies wäre wahrscheinlich schneller als ein Byte-für-Byte-Vergleich.


Beantwortet von –
Reed Copsey


Antwort geprüft von –
Willingham (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like