Function
startListFiles( _
List$(),
ByVal
Path$, _
Optional
ByVal
Subfolders
As
Boolean
=
False
, _
Optional
ByVal
FilenameFilter$ =
"*"
, _
Optional
ByVal
ExtensionFilter$ =
"*"
_
)
As
Boolean
If
FolderDoesntExist(Path)
Then
startListFiles =
"Folder doesn't exist"
Exit
Function
End
If
startListFiles = ListFiles(List, Path, Subfolders, FilenameFilter, ExtensionFilter)
End
Function
Private
Function
ListFiles(List$(),
ByVal
Path$,
ByVal
Subfolders
As
Boolean
,
ByVal
FilenameFilter$,
ByVal
ExtensionFilter$, _
Optional
ByRef
a& = -1)
As
Boolean
Dim
oFS
As
Object
, OFolder
As
Object
, oSubfolder
As
Object
, OFile
As
Object
Dim
E&, b&, tmp$
Set
oFS = CreateObject(
"Scripting.FileSystemObject"
)
Set
OFolder = oFS.GetFolder(Path)
On
Error
Resume
Next
If
Subfolders
Then
For
Each
oSubfolder
In
OFolder.Subfolders
ListFiles List, oSubfolder.Path, Subfolders, FilenameFilter, ExtensionFilter, a
Next
End
If
On
Error
GoTo
0
E = OFolder.FILES.Count
If
E = 0
Then
Exit
Function
ReDim
Preserve
List(a + E)
tmp = Dir(Path &
"\" & FilenameFilter & "
*" & ExtensionFilter)
While
tmp <>
""
a = a + 1
List(a) = Path & "\" & tmp
tmp = Dir
Wend
If
a >= 0
Then
ReDim
Preserve
List(a)
ListFiles =
True
Set
OFolder =
Nothing
Set
oFS =
Nothing
Set
oSubfolder =
Nothing
Set
OFile =
Nothing
End
Function