devxlogo

CompareFiles – Check whether two files contain the same data

CompareFiles – Check whether two files contain the same data

' compare two files' return True if they're equalFunction CompareFiles(ByVal file1 As String, ByVal file2 As String) As Boolean    Dim fnum1 As Integer, isOpen1 As Boolean    Dim fnum2 As Integer, isopen2 As Boolean    Dim buffer1 As String, buffer2 As String    Dim bytesLeft As Long        ' size of the buffer - increase as needed    Const BUFFERSIZE = 10240        buffer1 = Space$(BUFFERSIZE)    buffer2 = buffer1        On Error GoTo ExitProc        ' compare the lengths    ' exit if not equal or if any error    bytesLeft = FileLen(file1)    If bytesLeft  FileLen(file2) Then Exit Function        ' open the first file    fnum1 = FreeFile    Open file1 For Binary As #fnum1    isOpen1 = True        ' open the second file    fnum2 = FreeFile    Open file2 For Binary As #fnum2    isopen2 = True        ' read the entire files in chunks        Do While bytesLeft        ' don't read more than the residual bytes        If bytesLeft ' read a bunch of bytes from both files        Get #fnum1, , buffer1        Get #fnum2, , buffer2        ' exit if files don't match        If buffer1  buffer2 Then Exit Do            ' evaluate how many bytes are left to read        bytesLeft = bytesLeft - Len(buffer1)    Loop        ' if we get here because we read the entire    ' files, then the two files are equal    CompareFiles = (bytesLeft = 0)        ' flow through the error handler routine    ' to close files and exit    ExitProc:    If isOpen1 Then Close #fnum1    If isopen2 Then Close #fnum2    ' raise the error in the client code    If Err Then        Err.Raise Err.Number, , Err.Description    End IfEnd Function

devx-admin

Share the Post: