Private Function CompareFiles(ByVal filePathOne As String, ByVal filePathTwo As String) As Boolean
Dim fileOneByte As Integer
Dim fileTwoByte As Integer
Dim fileOneStream As FileStream
Dim fileTwoStream As FileStream
' If user has selected the same file as file one and file two....
If (filePathOne = filePathTwo) Then
' Files are the same.
Me.ResultsRichTextBox.Text = "Files are the same; file one is file two."
Return True
End If
' Open a FileStream for each file.
fileOneStream = New FileStream(filePathOne, FileMode.Open)
fileTwoStream = New FileStream(filePathTwo, FileMode.Open)
' If the files are not the same length...
If (fileOneStream.Length <> fileTwoStream.Length) Then
fileOneStream.Close()
fileTwoStream.Close()
' File's are not equal.
Me.ResultsRichTextBox.Text = "Files are not the same length; they are not equal."
Return False
End If
Dim areFilesEqual As Boolean = True
' Loop through bytes in the files until
' a byte in file one <> a byte in file two
' OR
' end of the file one is reached.
Do
' Read one byte from each file.
fileOneByte = fileOneStream.ReadByte()
fileTwoByte = fileTwoStream.ReadByte()
If fileOneByte <> fileTwoByte Then
' Files are not equal; byte in file one <> byte in file two.
Me.ResultsRichTextBox.Text = "Files are not equal; contents are different."
areFilesEqual = False
Exit Do
End If
Loop While (fileOneByte <> -1)
' Close the FileStreams.
fileOneStream.Close()
fileTwoStream.Close()
Return areFilesEqual
End Function