Reinvention of wheel ?
Not quite …
Main difference is allowing file(s) and folder(s) selection together.
Another difference is implementing of <lNoChangeDir> parameter. Unlike GetFile(), GetDIRList() uses this value for allowing change directory ability to user.
Furthermore sorting grid columns by three (not two) ways, GetVolumLabel(), List2Arry() and Arry2List() functions may be useful.
Also, test program ( TestGDL.prg ) may be a sample for .fmg based application.
Download here ( source only ).