честно говоря, не понимаю проблемы - читаете имена файлов (можно рекурсивно по директориям, если вложенность не глубока), для каждого файла создаете экземпляр:
Type TFile
Field FileName$
End Type
Ну а со списком потом чего тольо нельзя сотворить.
Для удобства доступа, после завершения построения списка, можно сохранить элементы в массив Dim MyFiles.TFile(FileCount).
FileCount - инкрементальный счётчик, который куртился по мере четния директорий.
Delete Each tFILE
Local D%=ReadDir(InputFolder)
Local FileName$
Local FullFileName$
Local TotalC%=0
While True
FileName=NextFile(D)
If FileName="" Exit
FullFileName=InputFolder+"\"+FileName
If FileType(FullFileName)=1
Local EXT3$,EXT4$
EXT4=Upper(Right(FileName,4))
EXT3=Upper(Right(FileName,3))
Local EXT$=""
If EXT3="BMP" Or EXT3="JPG" Or EXT3="PNG"
EXT=EXT3
ElseIf EXT4="JPEG"
EXT="JPG"
EndIf
If EXT<>""
Local F.tFILE=New tFILE
;=
;Set param-s
F\FullFileName=FullFileName
F\FileUEXT=EXT
F\ID=TotalC+1
;=
TotalC=TotalC+1
EndIf
EndIf
Wend
CloseDir(D)
Type tFILE
Field FullFileName$
Field FileUEXT$
Field ID%
End Type
Dim LIST.tFILE(0)
Function tFILE2LIST(cnt%)
Dim LIST(cnt)
Local i=1
For f.tFILE=Each tFILE
LIST(i)=f
i=i+1
Next
End Function