Was ist der einfachste Weg, um herauszufinden, ob zwei Textdateien programmatisch unterschiedlich sind? Bei zwei Dateien muss ich nur wissen, ob sie unterschiedlich sind oder nicht. Dies ist für ein schnelles Werkzeug, um mit einer besonders fiesen Zusammenführung zu helfen (wechselte Sprachen von VB zu C # in einem Zweig (yay!) Und machte viele Änderungen in dem anderen), es wird nicht in die Produktion gehen.
Mögliche Lösungen:
Wenn es möglich wäre, den Leerraum zu ignorieren, wäre das toll, aber das ist mir egal. Die Hauptsache ist, dass es schnell und einfach gehen muss.
Ich benutze .Net 3.5sp1 übrigens. Danke für Ideen oder Hinweise.
Es gibt einen Artikel in der Microsoft Knowledge Base, hoffe, es hilft. Sie vergleichen die Bytes, um festzustellen, ob zwei Dateien unterschiedlich sind - Erstellen einer Dateivergleichsfunktion in Visual C #
Der schnellste Weg, dies zu tun, ist das Vergleichen von Byte zu Byte der in einem Stream geladenen Dateien. Das Hacken beider Dateien dauert bei großen Dateien, String-Vergleichen und externen Tools zu lange.
Das Vergleichen von Byte zu Byte ist das Beste für Sie, da es nur den EOF der Dateien erreicht, wenn beide identisch sind.
Wenn Sie Hash-Vergleiche, Zeichenkettenvergleiche oder externe Tools ausführen, müssen Sie bei allen Vergleichen die gesamten Dateien durchgehen. Beim Vergleichen von Byte zu Byte wird dies nur dann gemacht, wenn sie identisch sind.
>Es hängt auch davon ab, was Sie zu lösen versuchen. Versuchen Sie, die Frage zu beantworten: Finden Sie in diesem Verzeichnis von N Dateien alle exakten Duplikate? Oder sind diese beiden Dateien genau gleich?
Wenn Sie nur zwei Dateien vergleichen, ist die Verwendung einer byteweisen Überprüfung effizienter.
Wenn Sie jedoch versuchen, alle doppelten Paare in N-Dateien zu finden, ist ein MD5-Hash besser, da Sie den MD5-Hashwert einmal erstellen und speichern und diesen viel kleineren Wert mit jedem Dateipaar vergleichen können. Andernfalls würden Sie jeden Datei-Byte-Stream für jede andere Datei im Verzeichnis durchlaufen.
Ich habe vor einem Jahr eine sehr spezielle Version von diff implementiert (ich hatte Dateien mit mehr als 6GB und musste dann vergleichen). Also kenne ich die internen Funktionen von diff (natürlich kopieren und einfügen). Einige Gedanken:
Ich kann mit Code beitragen, wenn Sie möchten. Das Difffilieren von Dateien ist komplexer, weil Sie auch ausgeben, was anders ist.
Aus der Frage - Einfachste & amp; Textdatei
%Vor%Es ist nicht schnell oder hübsch, aber es ist einfach
Tags und Links .net