Как создать функцию сравнения файлов в Visual C#

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:320348
Для Microsoft Visual Basic.NET версии данной статьи, см. 320346.

В данной статье относится к следующим Microsoft.Библиотека классов NET Framework пространства имен:
  • System.IO

В ЭТОЙ ЗАДАЧЕ

Аннотация
В этой статье показано, как сравнить два файла, чтобы увидеть, если их содержимое, совпадают. Это сравнение просматривает содержимое двух файлов, а не на имена файлов, расположения, дат, времени и другие атрибуты.

Это похоже на основе MS-DOS Программа Fc.exe, в состав различных версий Microsoft Windows и Microsoft MS-DOS и некоторые средства разработки.

Пример кода, описанное в данной статье выполняет сравнение байт за байтом, пока не найдет несоответствие или достижении конца файла. Этот код также выполняет два простых проверок для повышения эффективности сравнения:
  • Если оба файла точку ссылки в тот же файл, должно быть равно двух файлов.
  • Если размер двух файлов не является одинаковым, два файла не совпадают.
back to the top

Создание образца

  1. Создание нового проекта приложения Windows Visual C#. По умолчанию будет создана форма Form1.
  2. Добавьте в форму два элемента управления textbox.
  3. Добавьте кнопку на форму.
  4. На Представление меню, нажмите кнопку Код.
  5. Добавьте следующие строки С ПОМОЩЬЮ инструкции Форма Form1 класс:
    using System.IO;					
  6. Добавьте следующий метод Форма Form1 класс:
    // This method accepts two strings the represent two files to // compare. A return value of 0 indicates that the contents of the files// are the same. A return value of any other value indicates that the // files are not the same.private bool FileCompare(string file1, string file2){     int file1byte;     int file2byte;     FileStream fs1;     FileStream fs2;     // Determine if the same file was referenced two times.     if (file1 == file2)     {          // Return true to indicate that the files are the same.          return true;     }                    // Open the two files.     fs1 = new FileStream(file1, FileMode.Open);     fs2 = new FileStream(file2, FileMode.Open);               // Check the file sizes. If they are not the same, the files         // are not the same.     if (fs1.Length != fs2.Length)     {          // Close the file          fs1.Close();          fs2.Close();          // Return false to indicate files are different          return false;     }     // Read and compare a byte from each file until either a     // non-matching set of bytes is found or until the end of     // file1 is reached.     do      {          // Read one byte from each file.          file1byte = fs1.ReadByte();          file2byte = fs2.ReadByte();     }     while ((file1byte == file2byte) && (file1byte != -1));          // Close the files.     fs1.Close();     fs2.Close();     // Return the success of the comparison. "file1byte" is      // equal to "file2byte" at this point only if the files are         // the same.     return ((file1byte - file2byte) == 0);}					
  7. Вставьте следующий код в Нажмите кнопку событие кнопки:
    private void button1_Click(object sender, System.EventArgs e){   // Compare the two files that referenced in the textbox controls.   if (FileCompare(this.textBox1.Text, this.textBox2.Text))      {         MessageBox.Show("Files are equal.");      }   else      {         MessageBox.Show("Files are not equal.");      }  } 					
  8. Сохраните и запустите образец.
  9. Предоставить полные пути для двух файлов в текстовых полях и нажмите кнопку команды.
back to the top
Ссылки
Для получения дополнительных сведений посетите следующие веб-узлы корпорации Майкрософт:
Пространство имен System.IO
(http://msdn2.Microsoft.com/en-us/library/System.IO (vs.71) .aspx)
Доступ К файлам через класс FileStream
(http://msdn2.Microsoft.com/en-us/library/Aa903246 (VS.71) .aspx)
back to the top

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 320348 — последний просмотр: 06/08/2011 16:00:00 — редакция: 4.0

,

  • kbhowtomaster kbio kbmt KB320348 KbMtru
Отзывы и предложения