Hi, Edgar
Would it be the mlistFiles function? I've been using it for a long time ... I hope it serves you, in this example it loads a grid with the information.

Procedure mListFiles String sFilePath
Local String sWin32FindData sDiretorio sCompila sLinha
Local String sShortFileName sLongFileName sViewSrcPac sLePrjPac
Local Pointer lpsFilePath lpsWin32FindData
Local Handle hFindFile
Local Dword dwFileAttributes dwFileSizeHigh dwFileSizeLow
Local Dword dwLowDateTime dwHighDateTime
Local Dword dwLowDateTime1 dwHighDateTime1
Local Dword dwLowDateTime2 dwHighDateTime2
Local Integer iVoid iRetval iTam iArq iStTecla iItem iExiste

if ((trim(sFilePath)) = "0") procedure_return
GetAddress Of sFilePath To lpsFilePath
Move 0 to iItem

move (length(sFilePath)) to iTam
move (mid(sFilePath,(iTam -6),3)) to sDiretorio

ZeroType Win32_Find_Data To sWin32FindData
GetAddress Of sWin32FindData To lpsWin32FindData

Move (FindFirstFile (lpsFilePath, lpsWin32FindData)) To hFindFile
Move (GetAsyncKeyState(VK_ESCAPE)) to iStTecla
if iStTecla Get YesNo_Box "Cancela ? " to iRetval
if (MBR_NO=iRetVal) procedure_return

GetBuff_String From sWin32FindData At Win32_Find_Data.cFileName To sLongFileName

GetBuff_String From sWin32FindData At Win32_Find_Data.cAlternateFileName To sShortFileName
GetBuff From sWin32FindData At Win32_Find_Data.nFileSizeHigh To dwFileSizeHigh
GetBuff From sWin32FindData At Win32_Find_Data.nFileSizeLow To dwFileSizeLow

GetBuff From sWin32FindData At Win32_Find_Data.ftCreationLowDateTime To dwLowDateTime
GetBuff From sWin32FindData At Win32_Find_Data.ftCreationHighDateTime To dwHighDateTime

GetBuff From sWin32FindData At Win32_Find_Data.ftLastAccessLowDateTime To dwLowDateTime1
GetBuff From sWin32FindData At Win32_Find_Data.ftLastAccessHighDateTime To dwHighDateTime1

GetBuff From sWin32FindData At Win32_Find_Data.ftLastWriteLowDateTime To dwLowDateTime2
GetBuff From sWin32FindData At Win32_Find_Data.ftLastWriteHighDateTime To dwHighDateTime2

Moveint (FindNextFile (hFindFile, lpsWin32FindData)) To iRetval

Move (uppercase(sFilePath)) to sViewSrcPac
replace "*.XLS" in sViewSrcPac with ""
append sViewSrcPac (Uppercase(Trim(sLongFileName)))
move (Trim(sViewSrcPac)) to sLePrjPac
replace "*.xls" in sViewSrcPac with ""

file_exist sViewSrcPac iExiste
if (iExiste = 0) move "." to sLongFileName
if ((trim(sLongFileName)) <> ".") begin
if ((trim(sLongFileName)) <> "..") begin
Send Add_Item to (oGrid(listagem(Self))) 0 (uppercase(sLongFileName)) // nome
set Entry_State of (oGrid(Listagem(self))) item (iItem + 0) to False
Send Add_Item to (oGrid(listagem(Self))) 0 (ConvertDateTime (dwLowDateTime, dwHighDateTime)) // data
set Entry_State of (oGrid(Listagem(self))) item (iItem + 1) to False
Send Add_Item to (oGrid(Listagem(Self))) 0 ((dwFileSizeHigh * MaxDword) + dwFileSizeLow) // tamanho
set Entry_State of (oGrid(Listagem(self))) item (iItem + 2) to False
Send Add_Item to (oGrid(Listagem(Self))) 2 "" //checkbox
Set Checkbox_Item_State of (oGrid(Listagem(self))) Item (iItem + 3) To True
calc (iItem + 4) to iItem
increment iArq
Until iRetval Eq Dffalse
Moveint (FindClose (hFindFile)) To iVoid