Feedback

C# - Dateien vergleichen

Veröffentlicht von am 23.10.2006
(8 Bewertungen)
Zwei Dateien inhaltlich vergleichen
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

private bool FileCompare(string file1, string file2)
{
    int file1byte;
    int file2byte;
    FileStream fs1;
    FileStream fs2;
 
    if (file1 == file2)
    {
          return true;
    }
 
    fs1 = new FileStream(file1, FileMode.Open);
    fs2 = new FileStream(file2, FileMode.Open);
 
    if (fs1.Length != fs2.Length)
    {
          fs1.Close();
          fs2.Close();
 
          return false;
    }
 
    do 
    {
          file1byte = fs1.ReadByte();
          file2byte = fs2.ReadByte();
    }
    while ((file1byte == file2byte) && (file1byte != -1));
 
    fs1.Close();
    fs2.Close();
 
    return ((file1byte - file2byte) == 0);
}


Abgelegt unter Dateien, vergleichen, FileCompare.

3 Kommentare zum Snippet

Tim Hartwig schrieb am 23.10.2006:
Da kann man aber besser Hashwerte vergleichen lassen. Ist evtl. auch viel schneller
lypô schrieb am 07.07.2013:
Für einfache Zwecke hätte ich's eher einfach gehalten.
So im Prinzip:
if (File1.Contain(File2) && File2.Conatin(File1))...

Ich mach noch nicht lange mit C#, hat bei mir aber funktioniert.
Koopakiller schrieb am 07.07.2013:
Man sollte auch beachten, das die Streams nicht geschlossen werden, wenn die Leseberechtigung für eine der beiden Dateien fehlt. Also ein Try-Catch-Finally-Block oder einfach einen using-Block verwenden.
 

Logge dich ein, um hier zu kommentieren!