Como criar uma função de comparar arquivos no Visual translation from VPE for Csharp

Traduções deste artigo Traduções deste artigo
ID do artigo: 320348 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo demonstra como comparar dois arquivos para ver se o seu conteúdo é os mesmos. Essa comparação examina o conteúdo de dois arquivos, não nos nomes de arquivo, locais, datas, horas ou outros atributos.

Essa funcionalidade é semelhante ao utilitário de Fc.exe baseado em Microsoft MS-DOS que está incluído com várias versões do Microsoft Windows e o Microsoft MS-DOS e com algumas ferramentas de desenvolvimento.

O código de exemplo que é descrito neste artigo executa uma comparação byte por byte até que ele encontra uma incompatibilidade ou atingir o final do arquivo. O código também executará duas verificações simples para aumentar a eficiência da comparação:
  • Se ambos arquivos ponto referências para o mesmo arquivo, os dois arquivos devem ser iguais.
  • Se o tamanho dos dois arquivos não for o mesmo, os dois arquivos não são iguais.

Para criar o exemplo

  1. Crie um novo projeto do Visual translation from VPE for Csharp Windows Application. Por padrão, é criado o Form1.
  2. Adicione dois controles de caixa de texto ao formulário.
  3. Adicione um botão de comando ao formulário.
  4. No menu Exibir , clique em código .
  5. Adicione a seguinte instrução USING para a classe Form1 :
    using System.IO;
    					
  6. Adicione o seguinte método à classe 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. Cole o seguinte código no evento Click do botão de comando:
    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. Salve e em seguida, executar a amostra.
  9. Fornecer os caminhos completos para os dois arquivos nas caixas de texto e clique no botão de comando.

Referências

Para obter mais informações, visite os seguintes sites:
System.IO Namespace
(http://msdn2.microsoft.com/en-us/library/system.io(vs.71).aspx)
Acesso de arquivo até a classe FileStream
(http://msdn2.microsoft.com/en-us/library/Aa903246(VS.71).aspx)

Propriedades

ID do artigo: 320348 - Última revisão: segunda-feira, 26 de novembro de 2007 - Revisão: 1.6
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Palavras-chave: 
kbmt kbhowtomaster kbio KB320348 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 320348

Submeter comentários

 

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