.filesearch trouble
Here is my current code....it works fast, BUT doesn't get all the files
matching the .filename = "*.csv"...I'm not clear why??? In some folders,
it only gives me 1 of 8 available files, in others it gives me 2 of 3,
and in others, in gives me all the files that match the .filename =
"*.csv":
With Application.FileSearch
.RefreshScopes
.NewSearch
.LookIn = spath
.SearchSubFolders = False
.filename = "*.csv"
'Checks to see if there are any files and provides error handling if
not
If .Execute() 0 Then
ReDim filesavailable(1 To k + .FoundFiles.COUNT)
For j = 1 To .FoundFiles.COUNT
filesavailable(j) = .FoundFiles(j)
Next j
'Displays avaialbe files in a list box and turns on multiple
selection for avaiable list box
With lbFilesAvailable
.MultiSelect = fmMultiSelectMulti
.List = filesavailable
End With
'turns on multiple selection for list box of selected files
lbFilesSelected.MultiSelect = fmMultiSelectMulti
Else
MsgBox ("No files found. Please BROWSE another directory.")
End If
End With
Smokii
"?B?TmF0ZSBPbGl2ZXI=?="
wrote in :
Hello,
The following works for me:
Sub FilTime()
Dim myFolders As Variant, i As Long, j As Long
Dim fileList() As String
Let myFolders = [{"c:\temp","p:\data"}]
With Application.FileSearch
.NewSearch
'Create string: "c:\temp;p:\data"
.LookIn = Join$(myFolders, ";")
.SearchSubFolders = False
.Filename = "*.csv"
If .Execute() 0 Then
ReDim Preserve fileList(1 To .FoundFiles.Count)
For j = 1 To UBound(fileList)
fileList(j) = .FoundFiles(j)
Next j
Else: MsgBox "There were no files found."
End If
End With
If j Then
For i = LBound(fileList) To UBound(fileList)
Debug.Print fileList(i)
Next
Debug.Print UBound(fileList)
End If
End Sub
You could use join() (if you have xl 2000+) to convert your array to a
string to search on if you must start with an array.
Regards,
Nate Oliver
|