procedure TForm1.GetDirectories(Tree: TTreeView; Directory: string; Item: TTreeNode; IncludeFiles: boolean);
var
SearchRec: TSearchRec;
ItemTemp: TTreeNode;
position:integer;
tempstring:string;
begin
TreeView1.Items.BeginUpdate;
if Directory[length(Directory)] <> '\' then Directory := Directory + '\';
if FindFirst(Directory + '*.*',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
Item := Tree.Items.AddChild(Item,SearchRec.Name);
ItemTemp := Item.Parent;
GetDirectories(Tree,Directory + SearchRec.Name,Item,IncludeFiles);
Item := ItemTemp;
end
else if IncludeFiles then
if SearchRec.Name[1] <> '.' then
begin
ItemTemp:=Tree.Items.AddChild(Item,SearchRec.Name);
ItemTemp.ImageIndex:=1;
ItemTemp.SelectedIndex:=1;
tempstring:=Directory + SearchRec.Name;
position:=pos(dirname,tempstring);
tempstring:=trim(Copy(tempstring,position+length(dirname),length(tempstring)));
if GetFileEx(tempstring)='txt' then//text文件
filelist.Add(tempstring);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
treeView1.Items.EndUpdate;
end;