Exemple #1
0
 public static bool FileCompare(string first, string second)
 {
     FileInfo F1 = new FileInfo(first);
     FileInfo F2 = new FileInfo(second);
     if(F1.Length != F2.Length)
     {
         return false;
     }
     using(FileStreamEx fs1 = new FileStreamEx(first, FileMode.Open))
     {
         using(FileStreamEx fs2 = new FileStreamEx(second, FileMode.Open))
         {
             int Blocksize = 65536;
             long Progress = 0;
             byte[] buffer = new byte[Blocksize];
             byte[] buffer2 = new byte[Blocksize];
             while (Progress < fs1.Length)
             {
                 if ((Progress + Blocksize) <= fs1.Length)
                 {
                     buffer = fs1.ReadBytes(Blocksize);
                     buffer2 = fs2.ReadBytes(Blocksize);
                     if (!CompareArray(buffer, buffer2))
                         return false;
                     Progress += Blocksize;
                 }
                 else
                 {
                     int Remaining = (int)(fs1.Length - Progress);
                     byte[] Rem1 = fs1.ReadBytes(Remaining);
                     byte[] Rem2 = fs2.ReadBytes(Remaining);
                     if (!CompareArray(Rem1, Rem2))
                         return false;
                     Progress += Remaining;
                 }
             }
         }
     }
     return true;
 }