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

Переводы статьи Переводы статьи
Код статьи: 320348 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

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

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

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

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

  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. Предоставить полные пути для двух файлов в текстовых полях и нажмите кнопку команды.

Ссылки

Для получения дополнительных сведений посетите следующие веб-узлы корпорации Майкрософт:
Пространство имен 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)

Свойства

Код статьи: 320348 - Последний отзыв: 8 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
Ключевые слова: 
kbhowtomaster kbio kbmt KB320348 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:320348

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com