给你一段例子
procedure TFrmMain.FindFiles(const pszDir: string);
var
FileInfo:TSearchRec;
FindValue:Integer;
pszTemp:string;
strDir:string;
begin
if pszDir[Length(pszDir)]<>'/' then
strDir:=pszDir+'/'
else
strDir:=pszDir;
FindValue:=FindFirst(strDir+'*.*',faAnyFile,FileInfo);
if FindValue=0 then
repeat
pszTemp:=FileInfo.Name;
if (pszTemp='.') or (pszTemp='..')then
begin
FindNext(FileInfo);
Continue;
end;
if (FileInfo.Attr and FILE_ATTRIBUTE_DIRECTORY)<>0 then
FindFiles(strDir+pszTemp)
else
lstFileName.Items.Add(strDir+pszTemp);
until
FindNext(FileInfo)<>0;
FindClose(FileInfo);
end;