The validity of this code will depend somewhat on the nature of the data you are comparing as text based values may produce false positives on partial matches like a wildcarded search. Even a 1 will find a filter match in 11 or 15, etc. I've added 'whole word' matching using the worksheet's Match function as an alternative.
Option Explicit
Sub ytrte()
Dim DirCurrentArray As Variant, DirHistoryArray As Variant
Dim i As Long, k As Variant, DirNewArray As Variant
DirCurrentArray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
DirHistoryArray = Array(3, 4, 5, 6, 7, 8, 11)
ReDim DirNewArray(0)
i = 0
' 'wildcard' matching
For Each k In DirCurrentArray
If UBound(Filter(DirHistoryArray, k, True, vbBinaryCompare)) < 0 Then
ReDim Preserve DirNewArray(i)
DirNewArray(i) = k
i = i + 1
End If
Next k
If Not IsEmpty(DirNewArray(LBound(DirNewArray))) Then
For i = LBound(DirNewArray) To UBound(DirNewArray)
Debug.Print DirNewArray(i)
Next i
End If
'contents of DirNewArray
2
9
0
ReDim DirNewArray(0)
i = 0
' 'whole word' matching
For Each k In DirCurrentArray
If IsError(Application.Match(k, DirHistoryArray, 0)) Then
ReDim Preserve DirNewArray(i)
DirNewArray(i) = k
i = i + 1
End If
Next k
If Not IsEmpty(DirNewArray(LBound(DirNewArray))) Then
For i = LBound(DirNewArray) To UBound(DirNewArray)
Debug.Print DirNewArray(i)
Next i
End If
'contents of DirNewArray
1
2
9
0
End Sub
Adjusted loop to fill file names.
Dim DirCurrentArray() As Variant
Dim fileCount As long
...
'Gets Filenames into Array
fileCount = 0
Do While xFile <> ""
redim preserve DirCurrentArray(fileCount)
DirCurrentArray(fileCount) = xFile
fileCount = fileCount + 1
xFile = Dir$
Loop