例如:
将c:/my music里的所有mp3文件的文件名添加到listbox里
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateDirTree('c:/my music/');
end;
procedure TForm1.CreateDirTree(path: string);
var
SR:TSearchRec;
found:integer;
begin
found:=FindFirst(path+'*.*',faAnyFile,SR);
while found=0 do
begin
strtmp:=LowerCase(sr.Name);
if rightstr(strtmp,4)='.mp3' then
begin
Listbox1.Items.Add(path+sr.Name);
CreateDirTree(path+SR.Name+'/');
end;
found:=FindNext(SR);
end;
FindClose(SR);
end;
//*****************************************************************
下面是另一种方法:
function findfile(path:string):string;
var
rec:Tsearchrec;
f:integer;
begin
f:=findfirst(path+'/*.INI',rec);
while f=0 do
begin
if rec.attr=16 then
findfile(path+'/'+rec.name);//当文件为目录时递归调用
else
begin
... //为文件时的处理
end;
f:=findnext(rec);
end;
findclose(rec);
end;