VBA Ordner Rekursiv durchsuchen nach Dateien
Nabend,
kann mir jemand sagen, ob es möglich ist diesen Code so anzupassen, dass auch Unterordner durchsucht werden?
Ich brauche nur die Zahl der Dateien. Wenn es Unterordner gibt brauche ich dennoch nur die Gesamtzahl der Dateien.
Grüße
kann mir jemand sagen, ob es möglich ist diesen Code so anzupassen, dass auch Unterordner durchsucht werden?
Ich brauche nur die Zahl der Dateien. Wenn es Unterordner gibt brauche ich dennoch nur die Gesamtzahl der Dateien.
Public Function CountFiles(ByVal Pfad As String, _
Optional ByVal DateiTyp As String = "*.*") As Long
On Error GoTo ErrHandler
Dim Counter As Integer
Dim TempName As String
If Right$(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
TempName = Dir$(Pfad & DateiTyp)
While Len(TempName) > 0
If TempName <> "." And TempName <> ".." Then
Counter = Counter + 1
End If
TempName = Dir$
Wend
ErrHandler:
CountFiles = Counter
End Function
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1115181476
Url: https://administrator.de/contentid/1115181476
Ausgedruckt am: 18.11.2024 um 20:11 Uhr
7 Kommentare
Neuester Kommentar
Funktion rekursiv für alle Unterordner aufrufen ...
Erstellen rekursiver Prozeduren
bsp.
(Achtung "Option Compare Text" muss an den Anfang des Codefensters ganz oben)
Klappt natürlich nur wenn der User auch alle Ordner und Dateien sehen kann und ihm nicht Zugriffsrechte auf Unterordner fehlen.
Erstellen rekursiver Prozeduren
bsp.
Option Compare Text
Public fso As Object
Public Function CountFiles(ByVal Pfad As String, Optional ByVal DateiTyp As String = "*.*") As Long
Dim cnt As Long
For Each file In fso.GetFolder(Pfad).Files
If file.Name Like DateiTyp Then
cnt = cnt + 1
End If
Next
For Each subfolder In fso.GetFolder(Pfad).Subfolders
cnt = cnt + CountFiles(subfolder.Path, DateiTyp)
Next
CountFiles = cnt
End Function
Sub ZähleDateien()
Set fso = CreateObject("Scripting.FileSystemObject")
msgbox CountFiles("D:\testordner", "*.*")
End Sub
Klappt natürlich nur wenn der User auch alle Ordner und Dateien sehen kann und ihm nicht Zugriffsrechte auf Unterordner fehlen.
Zitat von @Xaero1982:
Hab ich gefunden und getestet und bekomme immer einen Fehler bei
Grüße
Hab ich gefunden und getestet und bekomme immer einen Fehler bei
> endFilePath = Mid(fullPath, iPos)
>
Grüße
Dann hast du der Funktion den falschen Pfad übergeben, guckst du klappt doch .