Rubrik: Dateisystem | 15.05.02 |
Ein bestimmtes Laufwerk nach einer Datei durchsuchen VB-Version: VB5, VB6 | ||
Views: 19.931 |
Ein vorgegebenes Laufwerk soll nach einer Datei durchsucht werden. Außerdem soll der Ordner angezeigt werden, der die Datei enthält. Hierfür nehmen Sie am Besten das File-System-Objekt (FSO).
Für unser Beispiel benötigen Sie eine Form mit einem CommandButton (cmdSearch), ein Label-Control (lblPath) und eine ListBox (List1), sowie Unter "Projekt - Verweise" einen Verweis auf die Microsoft Scripting Runtime-DLL. Dann noch folgenden Code:
Option Explicit Dim FSO As FileSystemObject Private Sub cmdSearch_Click() Dim sPath As String Dim sFileToSearchFor As String ' Verweis auf FSO-Object Set FSO = New FileSystemObject ' Startverzeichnis sPath = "C:\" ' Datei, nach der gesucht werden soll sFileToSearchFor = "test.txt" ' alle Ordner nach gewünschter Datei durchsuchen Screen.MousePointer = vbHourglass FSO_SearchFile sPath, sFileToSearchFor Screen.MousePointer = vbNormal End Sub ' einzelnen Ordner durchsuchen Private Sub FSO_SearchFile(ByVal sPath As String, _ ByVal sFileToSearchFor As String) Dim Folder As Folder Dim SubFolder As Folder ' Ggfs. abschließenden Backslash anfügen If Right$(sPath, 1) << "\" Then sPath = sPath & "\" lblPath.Caption = sPath DoEvents Set Folder = FSO.GetFolder(sPath) If Dir(sPath & sFileToSearchFor) << "" Then ' Datei im Ordner gefunden ' --< Pfad in die ListBox eintragen List1.AddItem sPath End If ' 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
Siehe hierzu auch:
Workshop: FSO: Arbeiten mit Dateien und Ordner, Teil 1
Workshop: FSO: Arbeiten mit Dateien und Ordner, Teil 2
Workshop: FSO: Arbeiten mit Dateien und Ordner, Teil 3