if FindFirst(IncludeTrailingPathDelimiter(d) + '*',
faAnyFile and (not faDirectory), SR) = 0 then
repeat
x.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);
uses FileUtil;
x := FindAllFiles(d, '*', False);
opendir my $dh, $d or die "Could not open $d for reading: $!\n";
@x = readdir $dh;
closedir $dh;
if FindFirst(IncludeTrailingPathDelimiter(d) + '*',
faAnyFile and (not faDirectory), SR) = 0 then
repeat
x.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);