Como criar uma função de comparação de arquivo no Visual Basic .NET ou no Visual Basic 2005

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: 320346
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 320348.

NESTA TAREFA

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.
back to the top

Para criar o exemplo

  1. Crie um novo projeto Visual Basic.NET ou Visual Basic 2005 Windows Application. Por padrão, é criado o Form1.

    Observação Você deve alterar o código no Visual Basic 2005. Por padrão, Visual Basic cria dois arquivos para o projeto quando você cria um projeto Windows Forms. Se o formulário é denominado Form1, os dois arquivos que representam o formulário são chamados de Form1.vb e Form1.Designer.vb. Escreva o código no arquivo Form1.vb. O Windows Forms Designer escreve o código no arquivo Form1.Designer.vb. O Windows Forms Designer usa a palavra-chave partial para dividir a implementação de Form1 em dois arquivos separados. Esse comportamento impede que o código gerado pelo designer sendo intercaladas com seu código.

    Para obter mais informações sobre os novos aprimoramentos linguagem Visual Basic 2005, visite o seguinte site da Web Microsoft Developer Network (MSDN): Para obter mais informações sobre classes parciais e o Windows Forms Designer, visite o seguinte site da MSDN:
  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 IMPORTS para a classe Form1 :
    Imports System.IO					
  6. Adicione o seguinte método à classe Form1 :
    ' This method accepts two strings that 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 Function FileCompare(ByVal file1 As String, ByVal file2 As String) As Boolean   Dim file1byte As Integer   Dim file2byte As Integer   Dim fs1 As FileStream   Dim fs2 As FileStream   ' Determine if the same file was referenced two times.   If (file1 = file2) Then      ' Return 0 to indicate that the files are the same.      Return True   End If   ' 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 equal.   If (fs1.Length <> fs2.Length) Then      ' Close the file      fs1.Close()      fs2.Close()      ' Return a non-zero value to indicate that the files are different.      Return False   End If   ' 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()   Loop While ((file1byte = file2byte) And (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)End Function					
  7. Cole o seguinte código no manipulador de evento Click do botão de comando:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   ' Compare the two files that are referenced in the textbox controls.   If (FileCompare(Me.TextBox1.Text, Me.TextBox2.Text)) Then      MessageBox.Show("Files are equal.")   Else      MessageBox.Show("Files are not equal.")   End IfEnd Sub					
  8. Salvar e a executar o código de exemplo.
  9. Fornecer os caminhos completos para dois arquivos nas caixas de texto e clique no botão de comando.
back to the top
Referências
Para informações adicionais, visite os seguintes sites: back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 320346 - Última Revisão: 05/11/2007 07:08:50 - Revisão: 3.5

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB320346 KbMtpt
Comentários