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
If hFindFile Ne INVALID_HANDLE_VALUE Begin
Repeat
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
end
end
Until iRetval Eq Dffalse
Moveint (FindClose (hFindFile)) To iVoid
End
End_Procedure