Hallo zusammen,
ich habe u.a. Function, die eine Datei in einem Verzeichnis incl. Unterverzeichnissen sucht. Der Dateiname (besteht aus 4 Zahlen) wird über ein Eingabefeld in einer selbst erstellten Menüleiste eingegeben.
Der Verzeichnisbaum enthält sehr viele Unterverzeichnisse, sodass die Suche zu lange dauert (ca. 30 Sek.). Um den Suchvorgang zu beschleunigen, möchte ich den Ansatz verfolgen, nur die Unterverzeichnisse zu durchsuchen, die mit der gleichen Zahl beginnen, wie die zu suchende Datei.
Bsp.:
Dateiname "1234.xls" liegt in Verzeichnis C:\Data\12001400\1234\. Im Verzeichnis C:\Data\12001400\ bestehen die Unterverzeichnisse
C:\Data\12001400\1200\
C:\Data\12001400\1201\
C:\Data\12001400\1202\
...
C:\Data\12001400\1234\
...
C:\Data\12001400\1399\
C:\Data\12001400\1400\
Hier der Code:
If Text <> "" Then
With Application.FileSearch
.NewSearch
.Filename = Text & "*.xls"
.LookIn = "C:\Data\"
.SearchSubFolders = True '****Unterordner mit einschließen
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Pfad(i) = (.FoundFiles(i)) '****Schreibt die gefundene Datei inklusive Pfad in die Array-Variable.
Ergebniss = Ergebniss & Chr(13) & Pfad(i)
Ergebnisfeld.AddItem (.FoundFiles(i))
Next i
If i > 0 Then ' If-Schleife, da im Ergebnis sonst 1 Wert zu groß angezeigt wird
i = i - 1
Else
i = i
End If
Menüerweiterung_RFFormblattSuche.Text = (i) & " Treffer -->"
Else
Menüerweiterung_RFFormblattSuche.Text = "Kein Treffer"
End If
End With
End If
Kennt jemand eine einfache Lösung oder eine Alternative, um die Suche zu beschleunigen? Vielen Dank schon mal...
Viele Grüße Jörg