Door de bestanden in een map lopen (files in directory)

Hier een stukje code waar door een map (directory) wordt gelopen en alle bestanden uit die directory worden weergegeven.

  • De directory komt hier uit een object ($hCardGame.sLocation), maar het is een gewone string met het volledige pad in, je kan het als test vervangen door de home directory zoals in de commentaar van de code wordt gesuggereerd.
  • Set1 is de subdirectory die doorlopen wordt.
  • De selectie van de files is hier een aantal grafische bestanden: png, jpg, jpeg; die worden eerst in een array gestoken.
  • Dan wordt de array uitgelezen met een FOR EACH / NEXT lus
  • Binnen die lus gebeurt een test, hier om te kijken of de lijst met namen niet te lang wordt
  • De uitvoer gaat naar een listbox, hier lsbxLog genaamd.

Dus behalve onderstaande code heb je daarbuiten de listbox en het object met eigenschap sLocation nodig (of vervang het door een parameter in de procedure).

PUBLIC SUB listImages()
  
  DIM sDirectory AS String
  DIM aFiles AS String[]
  DIM sFileName AS String
  DIM sList AS String 
  
'  Directory = System.User.Home
  sDirectory = $hCardGame.sLocation &/ "Set1"
  lsbxLog.Add(sDirectory, 0)
  aFiles = Dir(sDirectory, "*.png")
  aFiles.Insert(Dir(sDirectory, "*.jpg"))
  aFiles.Insert(Dir(sDirectory, "*.jpeg"))
  
  sList = ""
  FOR EACH sFileName IN aFiles
    sList &= ";" & sFileName
    IF Len(sList) > 80
      lsbxLog.Add(sList, 0) ' buffer full, show current part
      sList = ""
    ENDIF 
  NEXT
  lsbxLog.Add(sList, 0) ' final part
  
END