Function GetListFile(ByVal folder As String, ByVal Search As String, ByVal InSub As Boolean)
' nęěu InSub = True thiĚ tiĚm trong caŇ caěc thý muňc con
' nęěu InSub = False thiĚ maŇng traŇ vęĚ chiŇ chýěa tęn caěc tâňp tin. Nęěu InSub = True thiĚ maŇng traŇ vęĚ chýěa toaĚn bôň đýőĚng dâŢn
Dim sComm As String, tmpFile, text As String, m() As Byte, Arr
On Error GoTo ExitSub
If Right(folder, 1) <> "\" Then folder = folder & "\"
folder = """" & folder & """"
With CreateObject("Scripting.FileSystemObject")
tmpFile = .GetTempName
sComm = "dir " & folder & Search & " /b " & IIf(InSub, "/s", vbNullString) & " > " & tmpFile
CreateObject("Wscript.Shell").Run "cmd /u /c " & sComm, 0, True
text = .OpenTextFile(tmpFile, 1, , -1).ReadAll
Arr = Split(text, vbCrLf)
If UBound(Arr) = -1 Then GoTo ExitSub
' chăěc chăěn phâĚn týŇ cuôěi cuĚng laĚ rôŢng, loaňi boŇ
If Arr(UBound(Arr)) = "" Then ReDim Preserve Arr(0 To UBound(Arr) - 1)
GetListFile = Arr
End With
ExitSub:
'Kill tmpFile
End Function