Bilder in Unterordner


Mit FF_GetSelection(0) erhält man eine Liste aller Bilder im aktuellen Computerverzeichnis. Will man eine Liste aller Bilder im aktuellen Verzeichnis und dessen Unterordner generieren, hilft wie so oft FileSystemObject weiter.
Man muss erst einmal alle Unterordner des aktuellen Verzeichnisses ermitteln.

VBS-Beispiel zum Auslesen des aktuellen Ordners mit allen Unterordnern
Dim objFS,objFolder
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(FF_GetImagePath)
 
Dim Ordnerliste
 
call AlleOrdner(objFolder)
 
Set objFolder = nothing
Set objFS = nothing
 
'Anzeige des aktiven Ordners und aller Unterordner
msgbox Ordnerliste,vbInformation,"Ordner und Unterordner"
'-------------------------------------------------------------
Sub AlleOrdner(ByVal Startordner)
Dim Unterordner
 
Ordnerliste = Ordnerliste & Startordner & vbNewLine
 
For Each Unterordner In Startordner.subfolders
    AlleOrdner Unterordner
Next
 
End Sub
'-------------------------------------------------------------
Um aus den Unterordnern die Bilder auszulesen, muss man noch eine Ausleseschleife für Dateien hinzufügen und, da natürlich nicht nur Bilddateien gefunden werden, die Bilder ausfiltern.

VBS-Beispiel zum Auslesen aller Bilder im aktuellen Ordner und dessen Unterordner
const Bildfilter = ".JPG.JP2.PNG.TIF.BMP"
 
Dim objFS,objFolder
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(FF_GetImagePath)
 
Dim Bildsammlung   'enthält alle Bilder, getrennt mit CRLF

call AlleOrdner(objFolder)
Set objFolder = nothing
Set objFS = nothing
 
'-------------------------------------------------------------
Sub AlleOrdner(ByVal Startordner)
Dim Unterordner,Datei
 
for each Datei In Startordner.Files
    'nur Dateien, die dem Bildfilter entsprechen, werden angenommen
    if instr(Bildfilter,"." & ucase(objFS.GetExtensionName(Datei))) > 0 then
        if Bildsammlung = "" then
            Bildsammlung = Datei
        else
            Bildsammlung = Bildsammlung & vbNewLine & Datei
        end if
    end if
next
 
For Each Unterordner In Startordner.subfolders
    AlleOrdner Unterordner
Next
 
End Sub
'-------------------------------------------------------------
Die Variable 'Bildersammlung' enthält anschließend alle Bilder, getrennt durch CRLF.