先用
chdir('ml'); //ml 为你想搜索的目录
再调用
procedure FindFile(BaoHan:integer);
//搜索指定目录下文件,BaoHan=1 包含子目录
var Sr : TSearchRec;
Err,i: integer;
ml:string;
Begin
i:=0;
Err:=FindFirst('*.*',$37,Sr);
if sr.Name[1]='.' then Err:=FindNext(Sr) ;
if sr.Name[1]='.' then Err:=FindNext(Sr) ;
While (Err = 0) do begin
Listbox1.add(ExpandFileName(Sr.Name));
If (baohan=1)and((Sr.Attr and faDirectory)<>0) then
begin
ChDir(Sr.Name); FindFile(1); ChDir('..') ;
end;
end;
Err:=FindNext(Sr) ;
end ;
end;
上面一个只获取当前目录下所有文件,如果要获取该目录下的子目录的文件,看下面
procedure SearchFile(path:string);
var
SearchRec:TSearchRec;
found:integer;
begin
found:=FindFirst(path+'*.*',faAanyFile,SearchRec);
while found=0 do
begin
if (SearchRec.Name<>'.') and (SearchRec.name<>'..) and
(SearchRec.Name=faDirectory) then
SearchFile(SearchRec.Name+'\')
else
LisBox1.Add(SearchRec.Name);
found:=FindNext(SearchREc);
end;
FindClose(SearchRec);
end;
procedure searchfile(path:string);//注意,path后面要有'\';
var
SearchRec:TSearchRec;
found:integer;
begin
found:=FindFirst(path+'*.*',faAnyFile,SearchRec);
while found=0 do
begin
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..')
and (SearchRec.Attr<>faDirectory) then
ListBox1.Add(SearchRec.Name);
found:=FindNext(SearchRec);
end;
FindClose(SearchRec);
end;