VBA-Spezialthema "Dateien und Ordner suchen"
Allgemeines über das Thema "Dateien und Ordner suchen"
Übersicht der verschiedenen Such-Techniken
Eigenschaften einer Such-Technik
Wann wird welche Such-Technik verwendet?
Beschreibung der Such-Methoden
Suchen mit dem FileSearch-Objekt
Suchen mit dem FileSystemObject-Objekt
Suchen mit der SearchTreeForFile-API-Funktion
Suchen mit der FindFirstFile- und FindNextFile-API-Funktion
Diese Seite ist in Bearbeitung! |
Allgemeines über das Thema "Dateien und Ordner suchen"
Auf dieser Seite möchte ich auf die Thematik eingehen, wie man Dateien und Ordner mittels VBA-Programmcode suchen kann und was dabei zu beachten ist. Ich stelle hier mehrheitlich bereits fertige VBA-Lösungen vor, die Sie übernehmen und in Ihre Programme einbauen können.
| Verwandte Themen und Codebeispiele | |
Übersicht der verschiedenen Such-Techniken
Ich habe die vielen Möglichkeiten betrachtet, wie eine
Datei gesucht werden kann, und dabei festgestellt, dass alle diese Möglichkeiten auf
fünf verschiedenen Techniken basieren:
Suchen anhand der Dir-Funktion
von VBA
Suchen anhand des FileSearch-Objektes
der Microsoft Office-Objektbibliothek
Suchen anhand des FileSystemObject-Objektes
der Scripting Runtime-Bibliothek
Suchen anhand der API-Funktion SearchTreeForFile
Suchen anhand den API-Funktionen FindFirstFile
und FindNextFile
Eigenschaften einer Such-Technik
- Geschwindigkeit
- Speicherbelastung
- Caching
- Multitasking
- DLL
- Objektbibliothek
| Merkmal | Dir | FileSearch | FileSystemObject | SearchTreeForFile | FindFirstFile/FindNextFile |
| Suchen nach Datei | x | x | x | x | x |
| Suchen nach Ordner | x | - | x | - | - |
| Verwenden von Platzhalterzeichen * und ? | x | x | x | - | x |
| Liefern von allen Fundstellen | x | x | x | - | x |
| Laufendes Liefern der Fundstellen | x | - | x | - | x |
| Unterbrechen der Suche möglich | x | - | x | - | x |
| Abbrechen der Suche möglich | x | - | x | - | x |
| Suchen auch im Stammordner | - | x | - | x | x |
| Suchen einer Datei nur in bestimmten Ordnern | x | - | x | - | - |
| Verwenden von Eigenschaften als Suchkriterien | - | x | - | - | - |
Wann wird welche Such-Technik verwendet?
- Genauer Dateiname bekannt
- Erste Fundstelle/Alle Fundstellen
Beschreibung der Such-Methoden
Rekursive Suche
Weitere Informationen |
|
Suchen mit dem FileSearch-Objekt
Weitere Informationen |
|
Suchen mit dem FileSystemObject-Objekt
Rekursive Suche
Weitere Informationen |
|
Suchen mit der SearchTreeForFile-API-Funktion
Vollständig gekapselt
Schnell
Benötigt imagehlp.dll
Suchen mit der FindFirstFile- und FindNextFile-API-Funktion
Rekursive Suche
Erste gefundene Datei anzeigen
Declare Function SearchTreeForFile Lib
"imagehlp" (ByVal RootPath As String, _
ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long
Const MAX_PATHLENGTH = 260
Function SearchFileInFolders(ByVal strRootFolder As
String, ByVal strFile As String) As String
Dim strDummy As String
Dim lngRetCode As Long
strDummy = String(MAX_PATHLENGTH, 0)
lngRetCode = SearchTreeForFile(strRootFolder, strFile, strDummy)
If lngRetCode <> 0 Then
SearchFileInFolders = Left$(strDummy, InStr(1, strDummy, Chr$(0)) - 1)
Else
SearchFileInFolders = ""
End If
End Function
Sub CallSearchFile()
Dim strLocation As String
strLocation = SearchFileInFolders("C:\Daten", "Mappe.xls")
If strLocation <> "" Then
MsgBox "File found at: " & strLocation
Else
MsgBox "File not found"
End If
End Sub
Zuletzt aktualisiert am
27.05.2005 / 22:00 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten