用递归法获得指定目录下所有目录及文件名(注:对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;