' Returns a boolean indicating whether two files are equal
' Example: Debug.WriteLine(CompareFiles("D:\File1.mdb", "D:\File2.mdb"))
Function CompareFiles(ByVal path1 As String, ByVal path2 As String) As Boolean
Dim file1 As New System.IO.FileInfo(path1)
Dim file2 As New System.IO.FileInfo(path2)
Dim stream1, stream2 As System.IO.FileStream
' if the length of the 2 files is different, return False
If file1.Length <> file2.Length Then Return False
Try
' open the two files in read mode
stream1 = file1.OpenRead()
stream2 = file2.OpenRead()
Dim i As Integer
' check whether all bytes are equal
For i = 0 To stream1.Length
If stream1.ReadByte() <> stream2.ReadByte Then
Return False
End If
Next
' if not already exited at this point, the two files are equal
Return True
Catch e As Exception
Return False
Finally
' be sure to close the file before exiting the function
If Not stream1 Is Nothing Then stream1.Close()
If Not stream2 Is Nothing Then stream2.Close()
End Try
End Function