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

  1. Dim objFS,objFolder
  2. Set objFS = CreateObject("Scripting.FileSystemObject")
  3. Set objFolder = objFS.GetFolder(FF_GetImagePath)
  4.  
  5. Dim Ordnerliste
  6.  
  7. call AlleOrdner(objFolder)
  8.  
  9. Set objFolder = nothing
  10. Set objFS = nothing
  11.  
  12. 'Anzeige des aktiven Ordners und aller Unterordner
  13. msgbox Ordnerliste,vbInformation,"Ordner und Unterordner"
  14. '-------------------------------------------------------------
  15. Sub AlleOrdner(ByVal Startordner)
  16. Dim Unterordner
  17.  
  18. Ordnerliste = Ordnerliste & Startordner & vbNewLine
  19.  
  20. For Each Unterordner In Startordner.subfolders
  21. AlleOrdner Unterordner
  22. Next
  23.  
  24. End Sub
  25. '-------------------------------------------------------------
  26. 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 [[/Bildfilter|ausfiltern]].\\ \\ //VBS-Beispiel zum Auslesen aller Bilder im aktuellen Ordner und dessen Unterordner//\\
  27. const Bildfilter = ".JPG.JP2.PNG.TIF.BMP"
  28.  
  29. Dim objFS,objFolder
  30. Set objFS = CreateObject("Scripting.FileSystemObject")
  31. Set objFolder = objFS.GetFolder(FF_GetImagePath)
  32.  
  33. Dim Bildsammlung 'enthält alle Bilder, getrennt mit CRLF
  34.  
  35. call AlleOrdner(objFolder)
  36. Set objFolder = nothing
  37. Set objFS = nothing
  38.  
  39. '-------------------------------------------------------------
  40. Sub AlleOrdner(ByVal Startordner)
  41. Dim Unterordner,Datei
  42.  
  43. for each Datei In Startordner.Files
  44. 'nur Dateien, die dem Bildfilter entsprechen, werden angenommen
  45. if instr(Bildfilter,"." & ucase(objFS.GetExtensionName(Datei))) > 0 then
  46. if Bildsammlung = "" then
  47. Bildsammlung = Datei
  48. else
  49. Bildsammlung = Bildsammlung & vbNewLine & Datei
  50. end if
  51. end if
  52. next
  53.  
  54. For Each Unterordner In Startordner.subfolders
  55. AlleOrdner Unterordner
  56. Next
  57.  
  58. End Sub
  59. '-------------------------------------------------------------
  60. Die Variable '//Bildersammlung//' enthält anschließend alle Bilder, getrennt durch CRLF.