Visual Basic: Mehrere Dateien gleichzeitig suchen (Programmieren)

Visual Basic: Mehrere Dateien gleichzeitig suchen (Programmieren)

Also zu meine Frage: Ich habe einen Code gefunden mit dem man eine datei suchen kann. ihr findet sie hier:
http://www.vbarchiv.net/faq/ds_filesearch.php

Jetzt wollte ich fragen ob jemand weiß wie man den Code so ändern kann das er mehrere dateien gleichzeitig sucht und ihren Standort anzeigt. WEiß einer wie das geht?
Dies ist die leichte Abwandlung des von Dir verwendeten Codes. Allerdings halte ich das Beispiel ob der Rekursion für bedenklich (Stapelspeicher!). Aber bei einer normalem Verzeichnisstruktur sollte es reichen. Der Suchstring wird einfach durch ein Stringfeld ersetzt...

Option Explicit

Dim FSO As FileSystemObject

Private Sub cmdSearch_Click()
Dim sPath As String
Dim sFileToSearchFor() As String 'Beliebig variierbar

' Verweis auf FSO-Object
Set FSO = New FileSystemObject

' Startverzeichnis
sPath = "C:\"

' Dateien, nach denen gesucht werden soll
' Das Datenfeld ist beliebig redimensionierbar
Redim sFileToSearchFor(1 to 2)
sFileToSearchFor(1) = "test.txt"
sFileToSearchFor(2) = "dummy.dat" 'usw., usw.

' alle Ordner nach gewünschten Dateien durchsuchen
Screen.MousePointer = vbHourglass
FSO_SearchFile sPath, sFileToSearchFor
Screen.MousePointer = vbNormal
End Sub

' einzelnen Ordner durchsuchen
Private Sub FSO_SearchFile(ByVal sPath As String, _
sFileToSearchFor() As String)

Dim Folder As Folder
Dim SubFolder As Folder
Dim n as Long

' Ggfs. abschließenden Backslash anfügen
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"
lblPath.Caption = sPath
DoEvents

Set Folder = FSO.GetFolder(sPath)
For n=1 to Ubound(sFileToSearchFor)
If Dir(sPath & sFileToSearchFor(n)) <> "" Then
' Datei im Ordner gefunden
' --> Pfad in die ListBox eintragen
List1.AddItem sPath
End If
Next

' Ggfs. Fehler "Zugriff verweigert" ignorieren
On Local Error Resume Next

' Unterordner
If Folder.SubFolders.Count > 0 Then
For Each SubFolder In Folder.SubFolders
' Hier wird die Funktion REKURSIV aufgerufen,
' um alle weiteren Unterordner des SubFolders
' zu ermitteln
FSO_SearchFile sPath & SubFolder.Name, _
sFileToSearchFor
Next
End If
End Sub
Ich habe eine eigene Prozedur als BAS-Modul geschrieben, das auch ohne das leidige FSO-Objekt auskommt und wesentlich schneller ist. Bei Bedarf mail mir mal an meine Add in der Reg. Ich schicks Dir zu. Es ist zwar für das Auslesen aller Dateien und Verzeichnisse, aber ein Filter wäre einfachst einzubauen...
Danke FormatC!!!
Wenn wir dich nicht hätten...
Hab noch ne Frage:
Kann ´man den Code auch so schreiben, das das Programm nach dateien sucht in denen der name der datei drinsteckt. Also wenn man jetzt zum Suchen angibt: hans wurst, dass das programm dann alle Dateien auflistet in denen das wort hans wurst drin vorkommt? Also zb. HansWurst.exe oder hanswurst.mp3?
Also so wie bei der normalen Suche von Windows?
Der Dir-Befehl läßt ja auch Pattern zu, aber noch eine Schleife in der Schleife und das bei rekusiven Aufrufen - Nene, sowas schreib ich nicht ;o)

Ich mail Dir morgen mal meine Prozedur, die listet alle Dateien. Das umzubauen, um eine Zeichenfolge zu finden, ist eigentlich simpel. Wenn Du es bis Mittag nicht hast, schick mir 'ne Erinnerungsmail (dann hatte ich Streß auf Arbeit und es leider vergessen).
Ok mach ich. Vielen Dank!!!
So, Mail ist raus ;o)
Vielleicht hilft Dir dieser Code:
http://www.activevb.de/tipps/vb6tipps/tipp0128.html
Vielen Dank an euch beide. Ihr habt mir sehr geholfen!!!
Logge dich ein um einen Beitrag zu schreiben.