Office Logo VBA  Zurück zur Hauptseite

VBA-Spezialthema "Dateien und Ordner suchen"

      Allgemeines über das Thema "Dateien und Ordner suchen"

      Übersicht der verschiedenen Such-Techniken

          Eigenschaften einer Such-Technik

          Vergleich der Such-Techniken

          Wann wird welche Such-Technik verwendet?

      Beschreibung der Such-Methoden

          Suchen mit der Dir-Funktion

          Suchen mit dem FileSearch-Objekt

          Suchen mit dem FileSystemObject-Objekt

          Suchen mit der SearchTreeForFile-API-Funktion

          Suchen mit der FindFirstFile- und FindNextFile-API-Funktion

      VBA-Codebeispiele

 

      Zur Hauptseite

To Top

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

Verwandte Themen und Codebeispiele
VBA-Codebeispiele
VBA-Spezialthema: FileSystemObject (FSO)
VBA-Spezialthema: FileSearch

To Top

 


Ü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

 

To Top

 


Eigenschaften einer Such-Technik

 

- Geschwindigkeit
- Speicherbelastung
- Caching
- Multitasking

- DLL
- Objektbibliothek

 

To Top

 


Vergleich der Such-Techniken

 

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 - - -

 

To Top

 


Wann wird welche Such-Technik verwendet?

- Genauer Dateiname bekannt

- Erste Fundstelle/Alle Fundstellen

 

To Top

 


Beschreibung der Such-Methoden

Suchen mit der Dir-Funktion

Rekursive Suche

 

 

Weitere Informationen

VBA-Befehle und -Funktionen

To Top


Suchen mit dem FileSearch-Objekt

 

 

 

Weitere Informationen

VBA-Spezialthema "FileSearch"

To Top


Suchen mit dem FileSystemObject-Objekt

Rekursive Suche

 

 

Weitere Informationen

VBA-Spezialthema "FileSystemObject (FSO)"

To Top


Suchen mit der SearchTreeForFile-API-Funktion

Vollständig gekapselt

Schnell

Benötigt imagehlp.dll

 

 

 

To Top


Suchen mit der FindFirstFile- und FindNextFile-API-Funktion

Rekursive Suche

 

 

To Top

 


VBA-Codebeispiele

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

To Top

Haben Sie Fragen, Anregungen oder Hinweise?
Senden Sie mir ein Mail

Zuletzt aktualisiert am 27.05.2005 / 22:00 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten