用递归法获得指定目录下所有目录及文件名(注:对ntfs格式的磁盘不适用)
在form上放置一treeview,Tedit,button
tedit的初始值设为C:
__________________________________________
procedure getallpath(path:string;treenode:ttreenode;subdir:boolean);
procedure Button1Click(Sender: TObject);
private
treenode:ttreenode;
...........
procedure Tform1.getallpath(path:string;treenode:ttreenode;subdir:boolean);
var
int:integer;
SRec: TSearchRec;
treenode2:ttreenode;
begin
int:=findfirst(path+'/*.*',faAnyFile,SRec);
while int<>18 do
begin
if (srec.Attr=16) THEN
begin
if (SREC.NAME<>'.') AND (SREC.NAME<>'..') then
begin
treenode2:=treeview1.Items.Addchild(treenode,srec.Name);
if subdir then GETALLPATH(path+'/'+SRec.Name,treenode2,subdir);
end
end
Else
begin
treenode2:=treeview1.Items.Addchild(treenode,srec.Name);
end;
int:=FindNext(SRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
treeview1.Items.Clear;
getallpath(edit1.text,treenode,true); //同时取子目录下的文件及目录名
//getallpath(edit1.text,treenode,false); 不取子目录下的文件及目录名
end;