procedure TForm1.Button1Click(Sender: TObject); begin findFile('d:\test\*.*'); end;procedure TForm1.FindFile(FileName: string); var F: TSearchRec; Item: TListItem; begin if FindFirst(FileName,faAnyFile,F)<>0 then exit; Item:=Listview.items.Add; Item.Caption:=ExtractFilePath(FileName)+F.Name; if f.Attr=faDirectory then begin Item.Subitems.Add('<DIR>'); if (f.Name<>'.') and (f.Name<>'..') then FindFile(ExtractFilePath(FileName)+f.Name+'\*.*'); end; While FindNext(F)=0 do begin Item:=Listview.items.Add; Item.Caption:=ExtractFilePath(FileName)+F.Name; if f.Attr=faDirectory then begin Item.Subitems.Add('<DIR>'); if (f.Name<>'.') and (f.Name<>'..') then FindFile(ExtractFilePath(FileName)+f.Name+'\*.*'); end; end; FindClose(F); end;
procedure TMyClass.DirToTreeView(ATreeView: TTreeView; ADirectory: string; ARoot: TTreeNode; AIncludeFiles: Boolean); var SearchRec : TSearchRec; ItemTemp : TTreeNode; begin with ATreeView.Items do try BeginUpdate; if ADirectory[Length(ADirectory)] <> '\' then ADirectory := ADirectory +'\'; if FindFirst(ADirectory + '*.*', faDirectory, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then begin if (SearchRec.Attr and faDirectory > 0) then ARoot := AddChild(ARoot, SearchRec.Name); ItemTemp := ARoot.Parent; DirToTreeView(ATreeView, ADirectory + SearchRec.Name, ARoot, AIncludeFiles); ARoot := ItemTemp; end else if AIncludeFiles then if SearchRec.Name[1] <> '.' then AddChild(ARoot, SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; finally EndUpdate; end; end;
begin
findFile('d:\test\*.*');
end;procedure TForm1.FindFile(FileName: string);
var
F: TSearchRec;
Item: TListItem;
begin
if FindFirst(FileName,faAnyFile,F)<>0 then exit;
Item:=Listview.items.Add;
Item.Caption:=ExtractFilePath(FileName)+F.Name;
if f.Attr=faDirectory then
begin
Item.Subitems.Add('<DIR>');
if (f.Name<>'.') and (f.Name<>'..') then
FindFile(ExtractFilePath(FileName)+f.Name+'\*.*');
end; While FindNext(F)=0 do
begin
Item:=Listview.items.Add;
Item.Caption:=ExtractFilePath(FileName)+F.Name;
if f.Attr=faDirectory then
begin
Item.Subitems.Add('<DIR>');
if (f.Name<>'.') and (f.Name<>'..') then
FindFile(ExtractFilePath(FileName)+f.Name+'\*.*');
end;
end;
FindClose(F);
end;
,上面那一句缺少参数,能不能把完整的例子贴出来,谢谢
ARoot: TTreeNode; AIncludeFiles: Boolean);
var
SearchRec : TSearchRec;
ItemTemp : TTreeNode;
begin
with ATreeView.Items do
try
BeginUpdate;
if ADirectory[Length(ADirectory)] <> '\' then
ADirectory := ADirectory +'\';
if FindFirst(ADirectory + '*.*', faDirectory, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
begin
if (SearchRec.Attr and faDirectory > 0) then
ARoot := AddChild(ARoot, SearchRec.Name);
ItemTemp := ARoot.Parent;
DirToTreeView(ATreeView, ADirectory + SearchRec.Name, ARoot, AIncludeFiles);
ARoot := ItemTemp;
end
else if AIncludeFiles then
if SearchRec.Name[1] <> '.' then
AddChild(ARoot, SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
finally
EndUpdate;
end;
end;
:)