| Compare Two Files to Determine if They are Identical This function will allow you to compare one file to another. It will do either a lax check (compare file lengths only) or a stringent check (a byte by byte comparison). See comments for more details Public Function AreTheyTheSame(ByVal File1 As String, _ ByVal File2 As String, Optional StringentCheck As _ Boolean = False) As Boolean '********************************************************** 'PURPOSE: Check to see if two files are identical 'File1 and File2 = FullPaths of files to compare 'StringentCheck (optional): If false (default), 'will only compare file lengths. If true, a 'byte by byte comparison is conducted if file lengths are 'equal '********************************************************** On Error GoTo ErrorHandler If Dir(File1) = "" Then Exit Function If Dir(File2) = "" Then Exit Function Dim lLen1 As Long, lLen2 As Long Dim iFileNum1 As Integer Dim iFileNum2 As Integer Dim bytArr1() As Byte, bytArr2() As Byte Dim lCtr As Long, lStart As Long Dim bAns As Boolean lLen1 = FileLen(File1) lLen2 = FileLen(File2) If lLen1 <> lLen2 Then Exit Function ElseIf StringentCheck = False Then AreTheyTheSame = True Exit Function Else iFileNum1 = FreeFile Open File1 For Binary Access Read As #iFileNum1 iFileNum2 = FreeFile Open File2 For Binary Access Read As #iFileNum2 'put contents of both into byte Array bytArr1() = InputB(LOF(iFileNum1), #iFileNum1) bytArr2() = InputB(LOF(iFileNum2), #iFileNum2) lLen1 = UBound(bytArr1) lStart = LBound(bytArr1) bAns = True For lCtr = lStart To lLen1 If bytArr1(lCtr) <> bytArr2(lCtr) Then bAns = False Exit For End If Next AreTheyTheSame = bAns End If ErrorHandler: If iFileNum1 > 0 Then Close #iFileNum1 If iFileNum2 > 0 Then Close #iFileNum2 End Function |
Compare Two Files to Determine if They are Identic |
Express News India | Freelance ecommerce web development India