Feedback

C# - Dateien vergleichen

Veröffentlicht von am 10/23/2006
(8 Bewertungen)
Zwei Dateien inhaltlich vergleichen
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 10/23/2006:
Da kann man aber besser Hashwerte vergleichen lassen. Ist evtl. auch viel schneller
lypô schrieb am 7/7/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 7/7/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!