例如:
将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;
博客展示了C语言实现的两个功能。一是将指定目录下所有MP3文件的文件名添加到列表框,通过递归遍历目录实现;二是提供另一种查找文件的方法,可递归查找指定路径下的.INI文件,并对文件和目录做不同处理。

被折叠的 条评论
为什么被折叠?



