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